using AutoMapper; using Imprink.Application.Dtos; using Imprink.Domain.Entities; using MediatR; namespace Imprink.Application.Commands.Orders; public class GetOrdersByUserIdQuery : IRequest> { public string UserId { get; set; } = null!; public bool IncludeDetails { get; set; } } public class GetOrdersByUserId( IUnitOfWork uw, IMapper mapper) : IRequestHandler> { public async Task> Handle( GetOrdersByUserIdQuery request, CancellationToken cancellationToken) { IEnumerable orders; if (request.IncludeDetails) { orders = await uw.OrderRepository .GetByUserIdWithDetailsAsync(request.UserId, cancellationToken); } else { orders = await uw.OrderRepository .GetByUserIdAsync(request.UserId, cancellationToken); } return mapper.Map>(orders); } }