From 10035b328be222a7d7985a29e23b7395f172745b Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Thu, 27 Nov 2025 18:59:22 +0330 Subject: [PATCH] Add payment method and delivery status filters to user order queries --- .../Common/Mappings/UserOrderProfile.cs | 59 ++++++++++++++++++- .../GetAllUserOrderByFilterQuery.cs | 4 ++ .../GetAllUserOrderByFilterResponseDto.cs | 2 + .../GetUserOrder/GetUserOrderResponseDto.cs | 2 + .../Protos/userorder.proto | 8 +++ 5 files changed, 73 insertions(+), 2 deletions(-) diff --git a/src/BackOffice.BFF.Application/Common/Mappings/UserOrderProfile.cs b/src/BackOffice.BFF.Application/Common/Mappings/UserOrderProfile.cs index f32ec6f..b832896 100644 --- a/src/BackOffice.BFF.Application/Common/Mappings/UserOrderProfile.cs +++ b/src/BackOffice.BFF.Application/Common/Mappings/UserOrderProfile.cs @@ -1,10 +1,65 @@ +using BackOffice.BFF.Application.UserOrderCQ.Queries.GetAllUserOrderByFilter; +using Google.Protobuf.WellKnownTypes; +using CmsUserOrderFilter = CMSMicroservice.Protobuf.Protos.UserOrder.GetAllUserOrderByFilterFilter; +using CmsUserOrderRequest = CMSMicroservice.Protobuf.Protos.UserOrder.GetAllUserOrderByFilterRequest; + namespace BackOffice.BFF.Application.Common.Mappings; public class UserOrderProfile : IRegister { void IRegister.Register(TypeAdapterConfig config) { - //config.NewConfig() - // .Map(dest => dest.FullName, src => $"{src.Firstname} {src.Lastname}"); + config.NewConfig() + .Map(dest => dest.PaginationState, src => src.PaginationState == null ? null : new CMSMicroservice.Protobuf.Protos.PaginationState + { + PageNumber = src.PaginationState.PageNumber, + PageSize = src.PaginationState.PageSize + }) + .Map(dest => dest.SortBy, src => src.SortBy) + .Map(dest => dest.Filter, src => src.Filter == null ? null : BuildFilter(src.Filter)); + } + + private static CmsUserOrderFilter BuildFilter(GetAllUserOrderByFilterFilter src) + { + var filter = new CmsUserOrderFilter(); + + if (src.Id.HasValue) + filter.Id = src.Id.Value; + + if (src.Price.HasValue) + filter.Amount = src.Price.Value; + + if (src.PackageId.HasValue) + filter.PackageId = src.PackageId.Value; + + if (src.TransactionId.HasValue) + filter.TransactionId = src.TransactionId.Value; + + if (src.PaymentDate.HasValue) + { + filter.PaymentDate = Timestamp.FromDateTime(DateTime.SpecifyKind(src.PaymentDate.Value, DateTimeKind.Utc)); + } + + if (src.UserId.HasValue) + filter.UserId = src.UserId.Value; + + if (src.PaymentStatus.HasValue) + { + filter.PaymentStatus = src.PaymentStatus.Value + ? CMSMicroservice.Protobuf.Protos.PaymentStatus.Success + : CMSMicroservice.Protobuf.Protos.PaymentStatus.Reject; + } + + if (src.DeliveryStatus.HasValue) + { + filter.DeliveryStatus = (CMSMicroservice.Protobuf.Protos.DeliveryStatus)src.DeliveryStatus.Value; + } + + if (src.PaymentMethod.HasValue) + { + filter.PaymentMethod = (CMSMicroservice.Protobuf.Protos.PaymentMethod)src.PaymentMethod.Value; + } + + return filter; } } diff --git a/src/BackOffice.BFF.Application/UserOrderCQ/Queries/GetAllUserOrderByFilter/GetAllUserOrderByFilterQuery.cs b/src/BackOffice.BFF.Application/UserOrderCQ/Queries/GetAllUserOrderByFilter/GetAllUserOrderByFilterQuery.cs index 075b856..76aa964 100644 --- a/src/BackOffice.BFF.Application/UserOrderCQ/Queries/GetAllUserOrderByFilter/GetAllUserOrderByFilterQuery.cs +++ b/src/BackOffice.BFF.Application/UserOrderCQ/Queries/GetAllUserOrderByFilter/GetAllUserOrderByFilterQuery.cs @@ -24,4 +24,8 @@ public record GetAllUserOrderByFilterQuery : IRequest