Handler.cs 1.0 KB

1234567891011121314151617181920212223242526272829
  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. c.IsActive
  22. ))
  23. .ToListAsync(ct);
  24. return new Response(list);
  25. }
  26. }