Files
CMS/src/CMSMicroservice.WebApi/Common/Mappings/UserPackagePurchaseProfile.cs
T
masoodafar-web db20d95b43
Build and Deploy to Kubernetes / build-and-deploy (push) Has been cancelled
refactor(mappings): update filter mappings for club membership and payment transaction profiles
- Renamed filter types in ClubMembershipCycleHistoryProfile, ClubMembershipCycleProfile, PaymentTransactionProfile, UserPackagePurchaseProfile to improve clarity and consistency.
- Adjusted mapping methods to utilize new filter type aliases for better readability and maintainability.
- Ensured all relevant profiles are aligned with the updated filter structures.
2026-06-22 22:36:33 +03:30

86 lines
3.9 KiB
C#

using CMSMicroservice.Application.UserPackagePurchaseCQ.Queries.GetAllUserPackagePurchaseByFilter;
using CMSMicroservice.Application.UserPackagePurchaseCQ.Queries.GetUserPackagePurchaseSummary;
using CMSMicroservice.Protobuf.Protos.UserPackagePurchase;
using Google.Protobuf.WellKnownTypes;
using Mapster;
using AppFilter = CMSMicroservice.Application.UserPackagePurchaseCQ.Queries.GetAllUserPackagePurchaseByFilter.GetAllUserPackagePurchaseByFilterFilter;
using ProtoFilter = CMSMicroservice.Protobuf.Protos.UserPackagePurchase.GetAllUserPackagePurchaseByFilterFilter;
namespace CMSMicroservice.WebApi.Common.Mappings;
public class UserPackagePurchaseProfile : IRegister
{
public void Register(TypeAdapterConfig config)
{
config.NewConfig<GetAllUserPackagePurchaseByFilterRequest, GetAllUserPackagePurchaseByFilterQuery>()
.MapWith(src => new GetAllUserPackagePurchaseByFilterQuery
{
PaginationState = MapPagination(src.PaginationState),
SortBy = src.HasSortBy ? src.SortBy : null,
Filter = MapFilter(src.Filter)
});
config.NewConfig<GetAllUserPackagePurchaseByFilterResponseDto, GetAllUserPackagePurchaseByFilterResponse>()
.MapWith(src => new GetAllUserPackagePurchaseByFilterResponse
{
MetaData = MapMeta(src.MetaData),
Models = { src.Models?.Select(m => new UserPackagePurchaseModel
{
Id = m.Id,
UserId = m.UserId,
UserName = m.UserName,
UserMobile = m.UserMobile,
PackageId = m.PackageId,
PackageName = m.PackageName,
PurchaseMethod = (int)m.PurchaseMethod,
PurchasedAt = Timestamp.FromDateTime(DateTime.SpecifyKind(m.PurchasedAt, DateTimeKind.Utc)),
Amount = m.Amount,
OrderId = m.OrderId,
TransactionId = m.TransactionId,
CreatedAt = Timestamp.FromDateTimeOffset(m.Created)
}) ?? [] }
});
config.NewConfig<GetUserPackagePurchaseSummaryRequest, GetUserPackagePurchaseSummaryQuery>()
.MapWith(src => new GetUserPackagePurchaseSummaryQuery { Filter = MapFilter(src.Filter) });
config.NewConfig<GetUserPackagePurchaseSummaryResponseDto, GetUserPackagePurchaseSummaryResponse>()
.MapWith(src => new GetUserPackagePurchaseSummaryResponse
{
TotalCount = src.TotalCount,
TotalAmount = src.TotalAmount
});
}
private static AppFilter? MapFilter(ProtoFilter? src)
{
if (src == null) return null;
return new AppFilter
{
UserId = src.HasUserId ? src.UserId : null,
PackageId = src.HasPackageId ? src.PackageId : null,
PurchaseMethod = src.HasPurchaseMethod ? (Domain.Enums.PackagePurchaseMethod)src.PurchaseMethod : null,
PurchasedFrom = src.PurchasedFrom?.ToDateTime(),
PurchasedTo = src.PurchasedTo?.ToDateTime(),
MinAmount = src.HasMinAmount ? src.MinAmount : null,
MaxAmount = src.HasMaxAmount ? src.MaxAmount : null
};
}
private static Application.Common.Models.PaginationState? MapPagination(CMSMicroservice.Protobuf.Protos.PaginationState? ps) =>
ps == null ? null : new Application.Common.Models.PaginationState
{
PageNumber = ps.PageNumber > 0 ? ps.PageNumber : 1,
PageSize = ps.PageSize > 0 ? ps.PageSize : 20
};
private static CMSMicroservice.Protobuf.Protos.MetaData MapMeta(Application.Common.Models.MetaData meta) =>
new()
{
CurrentPage = meta.CurrentPage,
PageSize = meta.PageSize,
TotalCount = meta.TotalCount,
TotalPage = meta.TotalPage
};
}