db20d95b43
Build and Deploy to Kubernetes / build-and-deploy (push) Has been cancelled
- 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.
86 lines
3.9 KiB
C#
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
|
|
};
|
|
}
|