Handler.cs 1.2 KB

123456789101112131415161718192021222324252627282930
  1. using Application.Abstractions.Data;
  2. using Application.Abstractions.Messaging;
  3. using Microsoft.EntityFrameworkCore;
  4. namespace Application.Features.Api.DonationRank.GetConfig;
  5. internal sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Response>
  6. {
  7. public async Task<Response> Handle(Query request, CancellationToken ct)
  8. {
  9. var list = await db.DonationRankConfig
  10. .AsNoTracking()
  11. .Where(c => c.ChannelID == request.ChannelID)
  12. .OrderByDescending(c => c.CreatedAt)
  13. .Select(c => new RankConfigItem(
  14. c.ID, c.Title, (int)c.Theme, (int)c.Period,
  15. c.StartAt, c.EndAt,
  16. c.IsShowAmount, c.MaxRankCount, c.NameMode, c.IsActive,
  17. c.TitleFontFamily, c.TitleFontSizePx, c.TitleFontColor,
  18. (int)c.NameDisplayType,
  19. c.IsShowDonationCount, c.IsShowGradeIcon, c.IsShowMemberIcon,
  20. c.Rank1FontFamily, c.Rank1FontSizePx, c.Rank1FontColor,
  21. c.Rank2FontFamily, c.Rank2FontSizePx, c.Rank2FontColor,
  22. c.Rank3FontFamily, c.Rank3FontSizePx, c.Rank3FontColor
  23. ))
  24. .ToListAsync(ct);
  25. return new Response(list);
  26. }
  27. }