From e882f09955a7bb85113caa0fd4ea46c348b6f79d Mon Sep 17 00:00:00 2001 From: masoodafar-web Date: Fri, 14 Aug 2026 03:18:58 +0330 Subject: [PATCH] feat(user): enhance GetAllUserByFilter query response with additional fields and update Protobuf definitions - Added DefaultAddress and DefaultPostalCode properties to GetAllUserByFilterResponseDto for improved user data representation. - Updated GetAllUserByFilterQueryHandler to populate new response fields with relevant data. - Modified Protobuf definitions to include new fields in GetAllUserByFilterResponseModel. - Bumped Protobuf project version to reflect the addition of new features. --- README.md | 2 +- .../GetAllUserByFilterQueryHandler.cs | 35 ++++++++++++++++--- .../GetAllUserByFilterResponseDto.cs | 4 +++ .../CMSMicroservice.Protobuf.csproj | 2 +- .../Protos/user.proto | 2 ++ .../Common/Mappings/UserProfile.cs | 7 ++-- 6 files changed, 43 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 9fd7663..06b3f36 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ # CMS Microservice Documentation moved to [totalDoc/INDEX.md](../totalDoc/INDEX.md). - \ No newline at end of file + \ No newline at end of file diff --git a/src/CMSMicroservice.Application/UserCQ/Queries/GetAllUserByFilter/GetAllUserByFilterQueryHandler.cs b/src/CMSMicroservice.Application/UserCQ/Queries/GetAllUserByFilter/GetAllUserByFilterQueryHandler.cs index d2cc23e..1116df0 100644 --- a/src/CMSMicroservice.Application/UserCQ/Queries/GetAllUserByFilter/GetAllUserByFilterQueryHandler.cs +++ b/src/CMSMicroservice.Application/UserCQ/Queries/GetAllUserByFilter/GetAllUserByFilterQueryHandler.cs @@ -17,7 +17,7 @@ public class GetAllUserByFilterQueryHandler : IRequestHandler request.Filter.SearchText == null || + .Where(x => request.Filter.SearchText == null || x.FirstName.Contains(request.Filter.SearchText) || x.LastName.Contains(request.Filter.SearchText) || x.Mobile.Contains(request.Filter.SearchText) || @@ -34,14 +34,39 @@ public class GetAllUserByFilterQueryHandler : IRequestHandler request.Filter.SmsNotifications == null || x.SmsNotifications == request.Filter.SmsNotifications) .Where(x => request.Filter.EmailNotifications == null || x.EmailNotifications == request.Filter.EmailNotifications) .Where(x => request.Filter.PushNotifications == null || x.PushNotifications == request.Filter.PushNotifications) - .Where(x => request.Filter.BirthDate == null || x.BirthDate == request.Filter.BirthDate) -; + .Where(x => request.Filter.BirthDate == null || x.BirthDate == request.Filter.BirthDate); } + return new GetAllUserByFilterResponseDto { MetaData = await query.GetMetaData(request.PaginationState, cancellationToken), Models = await query.PaginatedListAsync(paginationState: request.PaginationState) - .ProjectToType().ToListAsync(cancellationToken) - }; + .Select(x => new GetAllUserByFilterResponseModel + { + Id = x.Id, + FirstName = x.FirstName, + LastName = x.LastName, + Mobile = x.Mobile, + NationalCode = x.NationalCode, + AvatarPath = x.AvatarPath, + NetworkParentId = x.NetworkParentId, + ReferralCode = x.ReferralCode, + IsMobileVerified = x.IsMobileVerified, + MobileVerifiedAt = x.MobileVerifiedAt, + EmailNotifications = x.EmailNotifications, + SmsNotifications = x.SmsNotifications, + PushNotifications = x.PushNotifications, + BirthDate = x.BirthDate, + DefaultAddress = x.UserAddresses + .Where(a => a.IsDefault && !a.IsDeleted) + .Select(a => a.Address) + .FirstOrDefault() ?? string.Empty, + DefaultPostalCode = x.UserAddresses + .Where(a => a.IsDefault && !a.IsDeleted) + .Select(a => a.PostalCode) + .FirstOrDefault() ?? string.Empty + }) + .ToListAsync(cancellationToken) + }; } } diff --git a/src/CMSMicroservice.Application/UserCQ/Queries/GetAllUserByFilter/GetAllUserByFilterResponseDto.cs b/src/CMSMicroservice.Application/UserCQ/Queries/GetAllUserByFilter/GetAllUserByFilterResponseDto.cs index 617fcba..399b13c 100644 --- a/src/CMSMicroservice.Application/UserCQ/Queries/GetAllUserByFilter/GetAllUserByFilterResponseDto.cs +++ b/src/CMSMicroservice.Application/UserCQ/Queries/GetAllUserByFilter/GetAllUserByFilterResponseDto.cs @@ -36,4 +36,8 @@ public class GetAllUserByFilterResponseDto public bool PushNotifications { get; set; } //تاریخ تولد public DateTime? BirthDate { get; set; } + //آدرس پیش‌فرض + public string DefaultAddress { get; set; } = string.Empty; + //کدپستی پیش‌فرض + public string DefaultPostalCode { get; set; } = string.Empty; } diff --git a/src/CMSMicroservice.Protobuf/CMSMicroservice.Protobuf.csproj b/src/CMSMicroservice.Protobuf/CMSMicroservice.Protobuf.csproj index 6d7c475..685ed49 100644 --- a/src/CMSMicroservice.Protobuf/CMSMicroservice.Protobuf.csproj +++ b/src/CMSMicroservice.Protobuf/CMSMicroservice.Protobuf.csproj @@ -3,7 +3,7 @@ net9.0 enable enable - 0.0.208 + 0.0.209 None False False diff --git a/src/CMSMicroservice.Protobuf/Protos/user.proto b/src/CMSMicroservice.Protobuf/Protos/user.proto index 367470c..8465bd4 100644 --- a/src/CMSMicroservice.Protobuf/Protos/user.proto +++ b/src/CMSMicroservice.Protobuf/Protos/user.proto @@ -238,6 +238,8 @@ message GetAllUserByFilterResponseModel bool sms_notifications = 12; bool push_notifications = 13; google.protobuf.Timestamp birth_date = 14; + string default_address = 15; + string default_postal_code = 16; } message GetJwtTokenRequest { diff --git a/src/CMSMicroservice.WebApi/Common/Mappings/UserProfile.cs b/src/CMSMicroservice.WebApi/Common/Mappings/UserProfile.cs index 02c294f..9a7553e 100644 --- a/src/CMSMicroservice.WebApi/Common/Mappings/UserProfile.cs +++ b/src/CMSMicroservice.WebApi/Common/Mappings/UserProfile.cs @@ -4,7 +4,10 @@ public class UserProfile : IRegister { void IRegister.Register(TypeAdapterConfig config) { - //config.NewConfig() - // .Map(dest => dest.FullName, src => $"{src.Firstname} {src.Lastname}"); + config.NewConfig() + .Map(dest => dest.ParentId, src => src.NetworkParentId) + .Map(dest => dest.DefaultAddress, src => src.DefaultAddress ?? string.Empty) + .Map(dest => dest.DefaultPostalCode, src => src.DefaultPostalCode ?? string.Empty); } }