Handler.cs 904 B

1234567891011121314151617181920212223242526272829
  1. using Application.Abstractions.Data;
  2. using Application.Abstractions.Messaging;
  3. using Microsoft.EntityFrameworkCore;
  4. namespace Application.Features.Admin.Channel.ExpConfig.Get;
  5. internal sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Response>
  6. {
  7. public async Task<Response> Handle(Query request, CancellationToken ct)
  8. {
  9. var entity = await db.Config.AsNoTracking()
  10. .OrderByDescending(x => x.ID)
  11. .FirstOrDefaultAsync(ct);
  12. var cfg = entity?.ChatExp ?? new Domain.Entities.Common.ChatExpConfig();
  13. return new Response(
  14. cfg.ChatXpPerMessage,
  15. cfg.DonationXpPerAmount,
  16. cfg.ChatXpSessionLimit,
  17. cfg.MinContentLength,
  18. cfg.RateLimitSec,
  19. cfg.LeaderboardSize,
  20. cfg.CrownTopN,
  21. cfg.UxShowLeaderboard,
  22. cfg.UxShowMyXpBadge
  23. );
  24. }
  25. }