From 65db839642c1b523242b0f71850927c1c83553dc Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Tue, 5 May 2026 01:54:33 +0330 Subject: [PATCH] feat: update GetOrderByIdQuery to allow nullable UserId and adjust query handling in GetOrderByIdQueryHandler --- .../Queries/GetOrderById/GetOrderByIdQuery.cs | 2 +- .../Queries/GetOrderById/GetOrderByIdQueryHandler.cs | 11 +++++++++-- .../Services/DiscountOrderService.cs | 7 ++++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/CMSMicroservice.Application/DiscountShopCQ/Queries/GetOrderById/GetOrderByIdQuery.cs b/src/CMSMicroservice.Application/DiscountShopCQ/Queries/GetOrderById/GetOrderByIdQuery.cs index 46e1e86..1e4966f 100644 --- a/src/CMSMicroservice.Application/DiscountShopCQ/Queries/GetOrderById/GetOrderByIdQuery.cs +++ b/src/CMSMicroservice.Application/DiscountShopCQ/Queries/GetOrderById/GetOrderByIdQuery.cs @@ -6,7 +6,7 @@ namespace CMSMicroservice.Application.DiscountShopCQ.Queries.GetOrderById; public class GetOrderByIdQuery : IRequest { public long OrderId { get; set; } - public long UserId { get; set; } + public long? UserId { get; set; } } public class OrderDetailDto diff --git a/src/CMSMicroservice.Application/DiscountShopCQ/Queries/GetOrderById/GetOrderByIdQueryHandler.cs b/src/CMSMicroservice.Application/DiscountShopCQ/Queries/GetOrderById/GetOrderByIdQueryHandler.cs index 1e55328..75a16da 100644 --- a/src/CMSMicroservice.Application/DiscountShopCQ/Queries/GetOrderById/GetOrderByIdQueryHandler.cs +++ b/src/CMSMicroservice.Application/DiscountShopCQ/Queries/GetOrderById/GetOrderByIdQueryHandler.cs @@ -15,8 +15,15 @@ public class GetOrderByIdQueryHandler : IRequestHandler Handle(GetOrderByIdQuery request, CancellationToken cancellationToken) { - var order = await _context.DiscountOrders - .Where(o => o.Id == request.OrderId && o.UserId == request.UserId) + var query = _context.DiscountOrders + .Where(o => o.Id == request.OrderId); + + if (request.UserId.HasValue && request.UserId.Value > 0) + { + query = query.Where(o => o.UserId == request.UserId.Value); + } + + var order = await query .Include(o => o.UserAddress) .Include(o => o.OrderDetails) .ThenInclude(od => od.Product) diff --git a/src/CMSMicroservice.WebApi/Services/DiscountOrderService.cs b/src/CMSMicroservice.WebApi/Services/DiscountOrderService.cs index 4a37621..db640c2 100644 --- a/src/CMSMicroservice.WebApi/Services/DiscountOrderService.cs +++ b/src/CMSMicroservice.WebApi/Services/DiscountOrderService.cs @@ -86,10 +86,15 @@ public class DiscountOrderService : DiscountOrderContract.DiscountOrderContractB public override async Task GetOrderById(GetOrderByIdRequest request, ServerCallContext context) { + var currentUserId = GetCurrentUserId(); + long? filterUserId = request.UserId > 0 + ? request.UserId + : (currentUserId > 0 ? currentUserId : null); + var query = new GetOrderByIdQuery { OrderId = request.OrderId, - UserId = GetCurrentUserId() + UserId = filterUserId }; var result = await _sender.Send(query); if (result == null)