Handler.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. using Application.Abstractions.Data;
  2. using Application.Abstractions.Messaging;
  3. using Microsoft.EntityFrameworkCore;
  4. namespace Application.Features.Admin.Channel.List.Get;
  5. public sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Response?>
  6. {
  7. public async Task<Response?> Handle(Query request, CancellationToken ct)
  8. {
  9. return await db.Channel
  10. .AsNoTracking()
  11. .Include(c => c.Member)
  12. .Where(c => c.ID == request.ID)
  13. .Select(c => new Response
  14. {
  15. ID = c.ID,
  16. MemberID = c.MemberID,
  17. MemberEmail = c.Member.Email,
  18. MemberName = c.Member.Name,
  19. MemberSID = c.Member.SID,
  20. SID = c.SID,
  21. Name = c.Name,
  22. Handle = c.Handle,
  23. YouTubeUrl = c.YouTubeUrl,
  24. PlatformFeeRate = c.PlatformFeeRate,
  25. IsVerified = c.IsVerified,
  26. IsActive = c.IsActive,
  27. UpdatedAt = c.UpdatedAt,
  28. CreatedAt = c.CreatedAt
  29. })
  30. .FirstOrDefaultAsync(ct);
  31. }
  32. }