2025-09-27 08:46:36 +03:30
|
|
|
namespace CMSMicroservice.Application.UserOrderCQ.Queries.GetUserOrder;
|
|
|
|
|
public class GetUserOrderQueryHandler : IRequestHandler<GetUserOrderQuery, GetUserOrderResponseDto>
|
|
|
|
|
{
|
|
|
|
|
private readonly IApplicationDbContext _context;
|
|
|
|
|
|
|
|
|
|
public GetUserOrderQueryHandler(IApplicationDbContext context)
|
|
|
|
|
{
|
|
|
|
|
_context = context;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task<GetUserOrderResponseDto> Handle(GetUserOrderQuery request,
|
|
|
|
|
CancellationToken cancellationToken)
|
|
|
|
|
{
|
|
|
|
|
var response = await _context.UserOrders
|
2025-11-25 04:59:50 +03:30
|
|
|
.Include(i => i.UserAddress)
|
|
|
|
|
.Include(i => i.FactorDetailss)
|
2025-11-25 05:23:55 +03:30
|
|
|
.ThenInclude(t=>t.Product)
|
2025-09-27 08:46:36 +03:30
|
|
|
.AsNoTracking()
|
|
|
|
|
.Where(x => x.Id == request.Id)
|
|
|
|
|
.ProjectToType<GetUserOrderResponseDto>()
|
|
|
|
|
.FirstOrDefaultAsync(cancellationToken);
|
|
|
|
|
|
|
|
|
|
return response ?? throw new NotFoundException(nameof(UserOrder), request.Id);
|
|
|
|
|
}
|
|
|
|
|
}
|