From ef1716e24323adc96d096ded84a54e9b6d1423a9 Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Tue, 17 Feb 2026 00:41:48 +0330 Subject: [PATCH] fix: proper DeliveryStatus mapping + cancel delivery on failed payment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Added MapDeliveryStatus() to correctly map Domain→Proto enum values - Domain Pending(1) was incorrectly cast to Proto PROCESSING(1) instead of PROCESSING - Set DeliveryStatus=Cancelled when payment fails (CompleteOrderPaymentCommandHandler) - Set DeliveryStatus=Cancelled when order expires (ExpirePendingOrdersService) --- .../CompleteOrderPaymentCommandHandler.cs | 1 + .../ExpirePendingOrdersService.cs | 1 + .../Services/DiscountOrderService.cs | 15 +++++++++++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/CMSMicroservice.Application/DiscountShopCQ/Commands/CompleteOrderPayment/CompleteOrderPaymentCommandHandler.cs b/src/CMSMicroservice.Application/DiscountShopCQ/Commands/CompleteOrderPayment/CompleteOrderPaymentCommandHandler.cs index 182112e..0216a08 100644 --- a/src/CMSMicroservice.Application/DiscountShopCQ/Commands/CompleteOrderPayment/CompleteOrderPaymentCommandHandler.cs +++ b/src/CMSMicroservice.Application/DiscountShopCQ/Commands/CompleteOrderPayment/CompleteOrderPaymentCommandHandler.cs @@ -105,6 +105,7 @@ public class CompleteOrderPaymentCommandHandler : IRequestHandler CMSMicroservice.Protobuf.Protos.DiscountOrder.PaymentStatus.PaymentPending, _ => CMSMicroservice.Protobuf.Protos.DiscountOrder.PaymentStatus.PaymentPending }; + + private static DeliveryStatus MapDeliveryStatus(DomainEnums.DeliveryStatus status) => status switch + { + DomainEnums.DeliveryStatus.None => DeliveryStatus.DeliveryPending, + DomainEnums.DeliveryStatus.Pending => DeliveryStatus.DeliveryProcessing, + DomainEnums.DeliveryStatus.InTransit => DeliveryStatus.DeliveryShipped, + DomainEnums.DeliveryStatus.Delivered => DeliveryStatus.DeliveryDelivered, + DomainEnums.DeliveryStatus.Returned => DeliveryStatus.DeliveryCancelled, + DomainEnums.DeliveryStatus.Cancelled => DeliveryStatus.DeliveryCancelled, + _ => DeliveryStatus.DeliveryPending + }; }