Handler.cs 1.1 KB

123456789101112131415161718192021222324252627282930
  1. using Application.Abstractions.Data;
  2. using Application.Abstractions.Messaging;
  3. using Microsoft.EntityFrameworkCore;
  4. namespace Application.Features.Api.DonationGoal.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.DonationGoalConfig
  10. .AsNoTracking()
  11. .Where(c => c.ChannelID == request.ChannelID)
  12. .OrderByDescending(c => c.CreatedAt)
  13. .Select(c => new GoalConfigItem(
  14. c.ID, c.Title, (int)c.Style,
  15. c.StartAmount, c.TargetAmount,
  16. c.StartAt, c.EndAt, c.IsShowPercent,
  17. c.BarColor, c.BarBackgroundColor, c.BarHeightPx,
  18. c.TitleFontSizePx, c.TitleFontColor,
  19. c.AmountFontSizePx, c.AmountFontColor,
  20. c.TitleFontFamily, c.AmountFontFamily,
  21. (int)c.Period,
  22. c.IsActive
  23. ))
  24. .ToListAsync(ct);
  25. return new Response(list);
  26. }
  27. }