Merge branch 'kub-stage' into production
Build and Deploy to Production / build-and-deploy (push) Failing after 19m40s
Build and Deploy to Production / build-and-deploy (push) Failing after 19m40s
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using CMSMicroservice.Domain.Enums;
|
||||
using Mapster;
|
||||
using AppHistory = CMSMicroservice.Application.ClubMembershipCycleHistoryCQ.Queries.GetAllClubMembershipCycleHistoryByFilter;
|
||||
using ProtoHistory = CMSMicroservice.Protobuf.Protos.ClubMembershipCycleHistory;
|
||||
|
||||
namespace CMSMicroservice.WebApi.Common.Mappings;
|
||||
|
||||
public class ClubMembershipCycleHistoryProfile : IRegister
|
||||
{
|
||||
public void Register(TypeAdapterConfig config)
|
||||
{
|
||||
config.NewConfig<ProtoHistory.GetAllClubMembershipCycleHistoryByFilterRequest, AppHistory.GetAllClubMembershipCycleHistoryByFilterQuery>()
|
||||
.Map(dest => dest.PaginationState, src => src.PaginationState)
|
||||
.Map(dest => dest.SortBy, src => src.SortBy)
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<ProtoHistory.GetAllClubMembershipCycleHistoryByFilterFilter, AppHistory.GetAllClubMembershipCycleHistoryByFilterFilter>()
|
||||
.Map(dest => dest.UserId, src => src.UserId)
|
||||
.Map(dest => dest.ClubMembershipCycleId, src => src.ClubMembershipCycleId)
|
||||
.Map(dest => dest.CycleNumber, src => src.CycleNumber)
|
||||
.Map(dest => dest.Action, src => src.Action == null ? null : (ClubMembershipCycleAction?)src.Action)
|
||||
.Map(dest => dest.CreatedFrom, src => src.CreatedFrom != null ? src.CreatedFrom.ToDateTime() : (DateTime?)null)
|
||||
.Map(dest => dest.CreatedTo, src => src.CreatedTo != null ? src.CreatedTo.ToDateTime() : (DateTime?)null);
|
||||
|
||||
config.NewConfig<AppHistory.GetAllClubMembershipCycleHistoryByFilterResponseDto, ProtoHistory.GetAllClubMembershipCycleHistoryByFilterResponse>()
|
||||
.Map(dest => dest.MetaData, src => src.MetaData)
|
||||
.Map(dest => dest.Models, src => src.Models);
|
||||
|
||||
config.NewConfig<AppHistory.GetAllClubMembershipCycleHistoryByFilterResponseModel, ProtoHistory.ClubMembershipCycleHistoryModel>()
|
||||
.Map(dest => dest.Id, src => src.Id)
|
||||
.Map(dest => dest.ClubMembershipCycleId, src => src.ClubMembershipCycleId)
|
||||
.Map(dest => dest.UserId, src => src.UserId)
|
||||
.Map(dest => dest.UserName, src => src.UserName)
|
||||
.Map(dest => dest.CycleNumber, src => src.CycleNumber)
|
||||
.Map(dest => dest.OldIsCurrentCycle, src => src.OldIsCurrentCycle)
|
||||
.Map(dest => dest.NewIsCurrentCycle, src => src.NewIsCurrentCycle)
|
||||
.Map(dest => dest.OldMagicStartedAt, src => src.OldMagicStartedAt)
|
||||
.Map(dest => dest.NewMagicStartedAt, src => src.NewMagicStartedAt)
|
||||
.Map(dest => dest.OldMagicCompletedAt, src => src.OldMagicCompletedAt)
|
||||
.Map(dest => dest.NewMagicCompletedAt, src => src.NewMagicCompletedAt)
|
||||
.Map(dest => dest.Action, src => (int)src.Action)
|
||||
.Map(dest => dest.PerformedBy, src => src.PerformedBy ?? string.Empty)
|
||||
.Map(dest => dest.Reason, src => src.Reason ?? string.Empty)
|
||||
.Map(dest => dest.CreatedAt, src => Timestamp.FromDateTimeOffset(src.Created));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using CMSMicroservice.Domain.Enums;
|
||||
using Mapster;
|
||||
using AppCycle = CMSMicroservice.Application.ClubMembershipCycleCQ.Queries.GetAllClubMembershipCycleByFilter;
|
||||
using AppCycleSummary = CMSMicroservice.Application.ClubMembershipCycleCQ.Queries.GetClubMembershipCycleSummary;
|
||||
using ProtoCycle = CMSMicroservice.Protobuf.Protos.ClubMembershipCycle;
|
||||
|
||||
namespace CMSMicroservice.WebApi.Common.Mappings;
|
||||
|
||||
public class ClubMembershipCycleProfile : IRegister
|
||||
{
|
||||
public void Register(TypeAdapterConfig config)
|
||||
{
|
||||
config.NewConfig<ProtoCycle.GetAllClubMembershipCycleByFilterRequest, AppCycle.GetAllClubMembershipCycleByFilterQuery>()
|
||||
.Map(dest => dest.PaginationState, src => src.PaginationState)
|
||||
.Map(dest => dest.SortBy, src => src.SortBy)
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<ProtoCycle.GetAllClubMembershipCycleByFilterFilter, AppCycle.GetAllClubMembershipCycleByFilterFilter>()
|
||||
.Map(dest => dest.UserId, src => src.UserId)
|
||||
.Map(dest => dest.IsCurrentCycle, src => src.IsCurrentCycle)
|
||||
.Map(dest => dest.PackageId, src => src.PackageId)
|
||||
.Map(dest => dest.CycleNumber, src => src.CycleNumber)
|
||||
.Map(dest => dest.PurchaseMethod, src => src.PurchaseMethod == null ? null : (PackagePurchaseMethod?)src.PurchaseMethod)
|
||||
.Map(dest => dest.MagicState, src => src.MagicState)
|
||||
.Map(dest => dest.PackagePurchasedFrom, src => src.PackagePurchasedFrom != null ? src.PackagePurchasedFrom.ToDateTime() : (DateTime?)null)
|
||||
.Map(dest => dest.PackagePurchasedTo, src => src.PackagePurchasedTo != null ? src.PackagePurchasedTo.ToDateTime() : (DateTime?)null);
|
||||
|
||||
config.NewConfig<AppCycle.GetAllClubMembershipCycleByFilterResponseDto, ProtoCycle.GetAllClubMembershipCycleByFilterResponse>()
|
||||
.Map(dest => dest.MetaData, src => src.MetaData)
|
||||
.Map(dest => dest.Models, src => src.Models);
|
||||
|
||||
config.NewConfig<AppCycle.GetAllClubMembershipCycleByFilterResponseModel, ProtoCycle.ClubMembershipCycleModel>()
|
||||
.Map(dest => dest.Id, src => src.Id)
|
||||
.Map(dest => dest.UserId, src => src.UserId)
|
||||
.Map(dest => dest.UserName, src => src.UserName)
|
||||
.Map(dest => dest.ClubMembershipId, src => src.ClubMembershipId)
|
||||
.Map(dest => dest.CycleNumber, src => src.CycleNumber)
|
||||
.Map(dest => dest.PackageId, src => src.PackageId)
|
||||
.Map(dest => dest.PackageName, src => src.PackageName)
|
||||
.Map(dest => dest.PackageAmount, src => src.PackageAmount)
|
||||
.Map(dest => dest.PurchaseMethod, src => (int)src.PurchaseMethod)
|
||||
.Map(dest => dest.PackagePurchasedAt, src => Timestamp.FromDateTime(DateTime.SpecifyKind(src.PackagePurchasedAt, DateTimeKind.Utc)))
|
||||
.Map(dest => dest.MagicStartedAt, src => src.MagicStartedAt)
|
||||
.Map(dest => dest.MagicCompletedAt, src => src.MagicCompletedAt)
|
||||
.Map(dest => dest.IsCurrentCycle, src => src.IsCurrentCycle)
|
||||
.Map(dest => dest.CreatedAt, src => Timestamp.FromDateTimeOffset(src.Created));
|
||||
|
||||
config.NewConfig<ProtoCycle.GetClubMembershipCycleSummaryRequest, AppCycleSummary.GetClubMembershipCycleSummaryQuery>()
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<AppCycleSummary.GetClubMembershipCycleSummaryResponseDto, ProtoCycle.GetClubMembershipCycleSummaryResponse>()
|
||||
.Map(dest => dest.TotalCount, src => src.TotalCount)
|
||||
.Map(dest => dest.CurrentCycleCount, src => src.CurrentCycleCount)
|
||||
.Map(dest => dest.MagicActiveCount, src => src.MagicActiveCount);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
using CMSMicroservice.Application.ClubMembershipCQ.Queries.GetAllClubMemberships;
|
||||
using CMSMicroservice.Application.ClubMembershipCQ.Queries.GetClubMembership;
|
||||
using CMSMicroservice.Application.ClubMembershipCQ.Queries.GetClubStatistics;
|
||||
using CMSMicroservice.Protobuf.Protos.ClubMembership;
|
||||
using CMSMicroservice.Domain.Enums;
|
||||
using AppHistory = CMSMicroservice.Application.ClubMembershipCQ.Queries.GetClubMembershipHistory;
|
||||
using ProtoClub = CMSMicroservice.Protobuf.Protos.ClubMembership;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using Mapster;
|
||||
using System.Linq;
|
||||
@@ -17,15 +19,15 @@ public class ClubMembershipProfile : IRegister
|
||||
// =====================
|
||||
|
||||
// GetClubMembershipRequest -> GetClubMembershipQuery
|
||||
config.NewConfig<GetClubMembershipRequest, GetClubMembershipQuery>()
|
||||
config.NewConfig<ProtoClub.GetClubMembershipRequest, GetClubMembershipQuery>()
|
||||
.MapWith(src => new GetClubMembershipQuery
|
||||
{
|
||||
UserId = src.UserId
|
||||
});
|
||||
|
||||
// ClubMembershipDto -> GetClubMembershipResponse
|
||||
config.NewConfig<ClubMembershipDto, GetClubMembershipResponse>()
|
||||
.MapWith(src => new GetClubMembershipResponse
|
||||
config.NewConfig<ClubMembershipDto, ProtoClub.GetClubMembershipResponse>()
|
||||
.MapWith(src => new ProtoClub.GetClubMembershipResponse
|
||||
{
|
||||
Id = src.Id,
|
||||
UserId = src.UserId,
|
||||
@@ -48,7 +50,7 @@ public class ClubMembershipProfile : IRegister
|
||||
// =====================
|
||||
|
||||
// GetAllClubMembershipsRequest -> GetAllClubMembershipsQuery
|
||||
config.NewConfig<GetAllClubMembershipsRequest, GetAllClubMembershipsQuery>()
|
||||
config.NewConfig<ProtoClub.GetAllClubMembershipsRequest, GetAllClubMembershipsQuery>()
|
||||
.MapWith(src => new GetAllClubMembershipsQuery
|
||||
{
|
||||
PaginationState = new Application.Common.Models.PaginationState
|
||||
@@ -64,8 +66,8 @@ public class ClubMembershipProfile : IRegister
|
||||
});
|
||||
|
||||
// GetAllClubMembershipsResponseDto -> GetAllClubMembershipsResponse
|
||||
config.NewConfig<GetAllClubMembershipsResponseDto, GetAllClubMembershipsResponse>()
|
||||
.MapWith(src => new GetAllClubMembershipsResponse
|
||||
config.NewConfig<GetAllClubMembershipsResponseDto, ProtoClub.GetAllClubMembershipsResponse>()
|
||||
.MapWith(src => new ProtoClub.GetAllClubMembershipsResponse
|
||||
{
|
||||
MetaData = new CMSMicroservice.Protobuf.Protos.MetaData
|
||||
{
|
||||
@@ -82,12 +84,12 @@ public class ClubMembershipProfile : IRegister
|
||||
// =====================
|
||||
|
||||
// GetClubStatisticsRequest -> GetClubStatisticsQuery
|
||||
config.NewConfig<GetClubStatisticsRequest, GetClubStatisticsQuery>()
|
||||
config.NewConfig<ProtoClub.GetClubStatisticsRequest, GetClubStatisticsQuery>()
|
||||
.MapWith(src => new GetClubStatisticsQuery());
|
||||
|
||||
// GetClubStatisticsResponseDto -> GetClubStatisticsResponse
|
||||
config.NewConfig<GetClubStatisticsResponseDto, GetClubStatisticsResponse>()
|
||||
.MapWith(src => new GetClubStatisticsResponse
|
||||
config.NewConfig<GetClubStatisticsResponseDto, ProtoClub.GetClubStatisticsResponse>()
|
||||
.MapWith(src => new ProtoClub.GetClubStatisticsResponse
|
||||
{
|
||||
TotalMembers = src.TotalMembers,
|
||||
ActiveMembers = src.ActiveMembers,
|
||||
@@ -97,14 +99,14 @@ public class ClubMembershipProfile : IRegister
|
||||
TotalRevenue = src.TotalRevenue,
|
||||
AverageMembershipDurationDays = src.AverageMembershipDurationDays,
|
||||
ExpiringSoonCount = src.ExpiringSoonCount,
|
||||
PackageDistribution = { src.PackageDistribution.Select(p => new PackageLevelDistribution
|
||||
PackageDistribution = { src.PackageDistribution.Select(p => new ProtoClub.PackageLevelDistribution
|
||||
{
|
||||
PackageId = p.PackageId,
|
||||
PackageName = p.PackageName ?? string.Empty,
|
||||
MemberCount = p.MemberCount,
|
||||
Percentage = p.Percentage
|
||||
}) },
|
||||
MonthlyTrend = { src.MonthlyTrend.Select(t => new MonthlyMembershipTrend
|
||||
MonthlyTrend = { src.MonthlyTrend.Select(t => new ProtoClub.MonthlyMembershipTrend
|
||||
{
|
||||
Month = t.Month ?? string.Empty,
|
||||
Activations = t.Activations,
|
||||
@@ -112,24 +114,55 @@ public class ClubMembershipProfile : IRegister
|
||||
NetChange = t.NetChange
|
||||
}) }
|
||||
});
|
||||
|
||||
// GetClubMembershipHistory
|
||||
config.NewConfig<ProtoClub.GetClubMembershipHistoryRequest, AppHistory.GetClubMembershipHistoryQuery>()
|
||||
.Map(dest => dest.PaginationState, src => src.PaginationState)
|
||||
.Map(dest => dest.SortBy, src => src.SortBy)
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<ProtoClub.GetClubMembershipHistoryFilter, AppHistory.GetClubMembershipHistoryFilter>()
|
||||
.Map(dest => dest.UserId, src => src.UserId)
|
||||
.Map(dest => dest.ClubMembershipId, src => src.ClubMembershipId)
|
||||
.Map(dest => dest.Action, src => src.Action == null ? null : (ClubMembershipAction?)src.Action)
|
||||
.Map(dest => dest.CreatedFrom, src => src.CreatedFrom != null ? src.CreatedFrom.ToDateTime() : (DateTime?)null)
|
||||
.Map(dest => dest.CreatedTo, src => src.CreatedTo != null ? src.CreatedTo.ToDateTime() : (DateTime?)null);
|
||||
|
||||
config.NewConfig<AppHistory.GetClubMembershipHistoryResponseDto, ProtoClub.GetClubMembershipHistoryResponse>()
|
||||
.Map(dest => dest.MetaData, src => src.MetaData)
|
||||
.Map(dest => dest.Models, src => src.Models);
|
||||
|
||||
config.NewConfig<AppHistory.GetClubMembershipHistoryResponseModel, ProtoClub.ClubMembershipHistoryModel>()
|
||||
.Map(dest => dest.Id, src => src.Id)
|
||||
.Map(dest => dest.ClubMembershipId, src => src.ClubMembershipId)
|
||||
.Map(dest => dest.UserId, src => src.UserId)
|
||||
.Map(dest => dest.UserName, src => src.UserName ?? string.Empty)
|
||||
.Map(dest => dest.OldIsActive, src => src.OldIsActive)
|
||||
.Map(dest => dest.NewIsActive, src => src.NewIsActive)
|
||||
.Map(dest => dest.OldInitialContribution, src => src.OldInitialContribution)
|
||||
.Map(dest => dest.NewInitialContribution, src => src.NewInitialContribution)
|
||||
.Map(dest => dest.Action, src => (int)src.Action)
|
||||
.Map(dest => dest.PerformedBy, src => src.PerformedBy ?? string.Empty)
|
||||
.Map(dest => dest.Reason, src => src.Reason ?? string.Empty)
|
||||
.Map(dest => dest.CreatedAt, src => Timestamp.FromDateTimeOffset(src.Created));
|
||||
}
|
||||
|
||||
private static ClubMembershipModel MapToModel(GetAllClubMembershipsResponseModel src)
|
||||
private static ProtoClub.ClubMembershipModel MapToModel(GetAllClubMembershipsResponseModel src)
|
||||
{
|
||||
return new ClubMembershipModel
|
||||
return new ProtoClub.ClubMembershipModel
|
||||
{
|
||||
Id = src.Id,
|
||||
UserId = src.UserId,
|
||||
UserName = src.UserName ?? string.Empty,
|
||||
PackageId = 0, // Not available in current entity
|
||||
PackageName = string.Empty, // Not available in current entity
|
||||
ActivationCode = string.Empty, // Not available in current entity
|
||||
PackageId = src.PackageId,
|
||||
PackageName = src.PackageName ?? string.Empty,
|
||||
ActivationCode = string.Empty,
|
||||
ActivatedAt = src.ActivatedAt.HasValue
|
||||
? Timestamp.FromDateTime(DateTime.SpecifyKind(src.ActivatedAt.Value, DateTimeKind.Utc))
|
||||
: null,
|
||||
ExpiresAt = null, // Not available in current entity
|
||||
ExpiresAt = null,
|
||||
IsActive = src.IsActive,
|
||||
IsExpired = false, // Calculate based on ExpiresAt if available
|
||||
IsExpired = false,
|
||||
Created = Timestamp.FromDateTime(src.Created.UtcDateTime)
|
||||
};
|
||||
}
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using CMSMicroservice.Domain.Enums;
|
||||
using Mapster;
|
||||
using AppPt = CMSMicroservice.Application.PaymentTransactionCQ.Queries.GetAllPaymentTransactionByFilter;
|
||||
using AppPtSummary = CMSMicroservice.Application.PaymentTransactionCQ.Queries.GetPaymentTransactionSummary;
|
||||
using ProtoPt = CMSMicroservice.Protobuf.Protos.PaymentTransaction;
|
||||
|
||||
namespace CMSMicroservice.WebApi.Common.Mappings;
|
||||
|
||||
public class PaymentTransactionProfile : IRegister
|
||||
{
|
||||
public void Register(TypeAdapterConfig config)
|
||||
{
|
||||
config.NewConfig<ProtoPt.GetAllPaymentTransactionByFilterRequest, AppPt.GetAllPaymentTransactionByFilterQuery>()
|
||||
.Map(dest => dest.PaginationState, src => src.PaginationState)
|
||||
.Map(dest => dest.SortBy, src => src.SortBy)
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<ProtoPt.GetAllPaymentTransactionByFilterFilter, AppPt.GetAllPaymentTransactionByFilterFilter>()
|
||||
.Map(dest => dest.UserId, src => src.UserId)
|
||||
.Map(dest => dest.Mobile, src => src.Mobile)
|
||||
.Map(dest => dest.GatewayProvider, src => src.GatewayProvider)
|
||||
.Map(dest => dest.PaymentStatus, src => src.PaymentStatus)
|
||||
.Map(dest => dest.Authority, src => src.Authority)
|
||||
.Map(dest => dest.RefId, src => src.RefId)
|
||||
.Map(dest => dest.OrderId, src => src.OrderId)
|
||||
.Map(dest => dest.CreatedFrom, src => src.CreatedFrom != null ? src.CreatedFrom.ToDateTime() : (DateTime?)null)
|
||||
.Map(dest => dest.CreatedTo, src => src.CreatedTo != null ? src.CreatedTo.ToDateTime() : (DateTime?)null);
|
||||
|
||||
config.NewConfig<AppPt.GetAllPaymentTransactionByFilterResponseDto, ProtoPt.GetAllPaymentTransactionByFilterResponse>()
|
||||
.Map(dest => dest.MetaData, src => src.MetaData)
|
||||
.Map(dest => dest.Models, src => src.Models);
|
||||
|
||||
config.NewConfig<AppPt.GetAllPaymentTransactionByFilterResponseModel, ProtoPt.PaymentTransactionModel>()
|
||||
.Map(dest => dest.Id, src => src.Id)
|
||||
.Map(dest => dest.UserId, src => src.UserId ?? 0)
|
||||
.Map(dest => dest.Mobile, src => src.Mobile ?? string.Empty)
|
||||
.Map(dest => dest.GatewayProvider, src => src.GatewayProvider)
|
||||
.Map(dest => dest.Amount, src => src.Amount)
|
||||
.Map(dest => dest.Authority, src => src.Authority ?? string.Empty)
|
||||
.Map(dest => dest.PaymentStatus, src => src.PaymentStatus)
|
||||
.Map(dest => dest.VerificationStatusCode, src => src.VerificationStatusCode)
|
||||
.Map(dest => dest.VerificationStatusMessage, src => src.VerificationStatusMessage ?? string.Empty)
|
||||
.Map(dest => dest.RefId, src => src.RefId ?? string.Empty)
|
||||
.Map(dest => dest.CardPan, src => src.CardPan ?? string.Empty)
|
||||
.Map(dest => dest.OrderId, src => src.OrderId ?? string.Empty)
|
||||
.Map(dest => dest.TransactionId, src => src.TransactionId)
|
||||
.Map(dest => dest.Description, src => src.Description ?? string.Empty)
|
||||
.Map(dest => dest.CreatedAt, src => Timestamp.FromDateTimeOffset(src.Created));
|
||||
|
||||
config.NewConfig<ProtoPt.GetPaymentTransactionSummaryRequest, AppPtSummary.GetPaymentTransactionSummaryQuery>()
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<AppPtSummary.GetPaymentTransactionSummaryResponseDto, ProtoPt.GetPaymentTransactionSummaryResponse>()
|
||||
.Map(dest => dest.TotalCount, src => src.TotalCount)
|
||||
.Map(dest => dest.TotalAmount, src => src.TotalAmount)
|
||||
.Map(dest => dest.SuccessfulCount, src => src.SuccessfulCount)
|
||||
.Map(dest => dest.PendingCount, src => src.PendingCount);
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,55 @@
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using Mapster;
|
||||
using AppTx = CMSMicroservice.Application.TransactionsCQ.Queries.GetAllTransactionsByFilter;
|
||||
using AppTxSummary = CMSMicroservice.Application.TransactionsCQ.Queries.GetTransactionSummary;
|
||||
using ProtoTx = CMSMicroservice.Protobuf.Protos.Transactions;
|
||||
|
||||
namespace CMSMicroservice.WebApi.Common.Mappings;
|
||||
|
||||
public class TransactionsProfile : IRegister
|
||||
{
|
||||
void IRegister.Register(TypeAdapterConfig config)
|
||||
{
|
||||
config.NewConfig<Protobuf.Protos.Transactions.GetAllTransactionsByFilterRequest, Application.TransactionsCQ.Queries.GetAllTransactionsByFilter.GetAllTransactionsByFilterQuery>()
|
||||
.IgnoreIf((src, dest) => !src.Filter.HasPaymentStatus, dest => dest.Filter.PaymentStatus)
|
||||
.IgnoreIf((src, dest) => !src.Filter.HasType, dest => dest.Filter.Type);
|
||||
public void Register(TypeAdapterConfig config)
|
||||
{
|
||||
config.NewConfig<ProtoTx.GetAllTransactionsByFilterRequest, AppTx.GetAllTransactionsByFilterQuery>()
|
||||
.Map(dest => dest.PaginationState, src => src.PaginationState)
|
||||
.Map(dest => dest.SortBy, src => src.SortBy)
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<ProtoTx.GetAllTransactionsByFilterFilter, AppTx.GetAllTransactionsByFilterFilter>()
|
||||
.Map(dest => dest.Id, src => src.Id)
|
||||
.Map(dest => dest.Amount, src => src.Amount)
|
||||
.Map(dest => dest.Description, src => src.Description)
|
||||
.Map(dest => dest.PaymentStatus, src => src.HasPaymentStatus ? (Domain.Enums.PaymentStatus?)src.PaymentStatus : null)
|
||||
.Map(dest => dest.PaymentDate, src => src.PaymentDate != null ? src.PaymentDate.ToDateTime() : (DateTime?)null)
|
||||
.Map(dest => dest.RefId, src => src.RefId)
|
||||
.Map(dest => dest.Type, src => src.HasType ? (Domain.Enums.TransactionType?)src.Type : null)
|
||||
.Map(dest => dest.CreatedFrom, src => src.CreatedFrom != null ? src.CreatedFrom.ToDateTime() : (DateTime?)null)
|
||||
.Map(dest => dest.CreatedTo, src => src.CreatedTo != null ? src.CreatedTo.ToDateTime() : (DateTime?)null)
|
||||
.Map(dest => dest.PaymentDateFrom, src => src.PaymentDateFrom != null ? src.PaymentDateFrom.ToDateTime() : (DateTime?)null)
|
||||
.Map(dest => dest.PaymentDateTo, src => src.PaymentDateTo != null ? src.PaymentDateTo.ToDateTime() : (DateTime?)null);
|
||||
|
||||
config.NewConfig<AppTx.GetAllTransactionsByFilterResponseDto, ProtoTx.GetAllTransactionsByFilterResponse>()
|
||||
.Map(dest => dest.MetaData, src => src.MetaData)
|
||||
.Map(dest => dest.Models, src => src.Models);
|
||||
|
||||
config.NewConfig<AppTx.GetAllTransactionsByFilterResponseModel, ProtoTx.GetAllTransactionsByFilterResponseModel>()
|
||||
.Map(dest => dest.Id, src => src.Id)
|
||||
.Map(dest => dest.Amount, src => src.Amount)
|
||||
.Map(dest => dest.Description, src => src.Description)
|
||||
.Map(dest => dest.PaymentStatus, src => src.PaymentStatus)
|
||||
.Map(dest => dest.PaymentDate, src => src.PaymentDate.HasValue ? Timestamp.FromDateTime(DateTime.SpecifyKind(src.PaymentDate.Value, DateTimeKind.Utc)) : null)
|
||||
.Map(dest => dest.RefId, src => src.RefId)
|
||||
.Map(dest => dest.Type, src => src.Type)
|
||||
.Map(dest => dest.Created, src => Timestamp.FromDateTime(DateTime.SpecifyKind(src.Created, DateTimeKind.Utc)));
|
||||
|
||||
config.NewConfig<ProtoTx.GetTransactionSummaryRequest, AppTxSummary.GetTransactionSummaryQuery>()
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<AppTxSummary.GetTransactionSummaryResponseDto, ProtoTx.GetTransactionSummaryResponse>()
|
||||
.Map(dest => dest.TotalCount, src => src.TotalCount)
|
||||
.Map(dest => dest.TotalAmount, src => src.TotalAmount)
|
||||
.Map(dest => dest.SuccessCount, src => src.SuccessCount)
|
||||
.Map(dest => dest.PendingCount, src => src.PendingCount)
|
||||
.Map(dest => dest.RejectCount, src => src.RejectCount);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
using CMSMicroservice.Domain.Enums;
|
||||
using Mapster;
|
||||
using AppUp = CMSMicroservice.Application.UserPackagePurchaseCQ.Queries.GetAllUserPackagePurchaseByFilter;
|
||||
using AppUpSummary = CMSMicroservice.Application.UserPackagePurchaseCQ.Queries.GetUserPackagePurchaseSummary;
|
||||
using ProtoUp = CMSMicroservice.Protobuf.Protos.UserPackagePurchase;
|
||||
|
||||
namespace CMSMicroservice.WebApi.Common.Mappings;
|
||||
|
||||
public class UserPackagePurchaseProfile : IRegister
|
||||
{
|
||||
public void Register(TypeAdapterConfig config)
|
||||
{
|
||||
config.NewConfig<ProtoUp.GetAllUserPackagePurchaseByFilterRequest, AppUp.GetAllUserPackagePurchaseByFilterQuery>()
|
||||
.Map(dest => dest.PaginationState, src => src.PaginationState)
|
||||
.Map(dest => dest.SortBy, src => src.SortBy)
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<ProtoUp.GetAllUserPackagePurchaseByFilterFilter, AppUp.GetAllUserPackagePurchaseByFilterFilter>()
|
||||
.Map(dest => dest.UserId, src => src.UserId)
|
||||
.Map(dest => dest.PackageId, src => src.PackageId)
|
||||
.Map(dest => dest.PurchaseMethod, src => src.PurchaseMethod == null ? null : (PackagePurchaseMethod?)src.PurchaseMethod)
|
||||
.Map(dest => dest.PurchasedFrom, src => src.PurchasedFrom != null ? src.PurchasedFrom.ToDateTime() : (DateTime?)null)
|
||||
.Map(dest => dest.PurchasedTo, src => src.PurchasedTo != null ? src.PurchasedTo.ToDateTime() : (DateTime?)null)
|
||||
.Map(dest => dest.MinAmount, src => src.MinAmount)
|
||||
.Map(dest => dest.MaxAmount, src => src.MaxAmount);
|
||||
|
||||
config.NewConfig<AppUp.GetAllUserPackagePurchaseByFilterResponseDto, ProtoUp.GetAllUserPackagePurchaseByFilterResponse>()
|
||||
.Map(dest => dest.MetaData, src => src.MetaData)
|
||||
.Map(dest => dest.Models, src => src.Models);
|
||||
|
||||
config.NewConfig<AppUp.GetAllUserPackagePurchaseByFilterResponseModel, ProtoUp.UserPackagePurchaseModel>()
|
||||
.Map(dest => dest.Id, src => src.Id)
|
||||
.Map(dest => dest.UserId, src => src.UserId)
|
||||
.Map(dest => dest.UserName, src => src.UserName)
|
||||
.Map(dest => dest.UserMobile, src => src.UserMobile)
|
||||
.Map(dest => dest.PackageId, src => src.PackageId)
|
||||
.Map(dest => dest.PackageName, src => src.PackageName)
|
||||
.Map(dest => dest.PurchaseMethod, src => (int)src.PurchaseMethod)
|
||||
.Map(dest => dest.PurchasedAt, src => Timestamp.FromDateTime(DateTime.SpecifyKind(src.PurchasedAt, DateTimeKind.Utc)))
|
||||
.Map(dest => dest.Amount, src => src.Amount)
|
||||
.Map(dest => dest.OrderId, src => src.OrderId)
|
||||
.Map(dest => dest.TransactionId, src => src.TransactionId)
|
||||
.Map(dest => dest.CreatedAt, src => Timestamp.FromDateTimeOffset(src.Created));
|
||||
|
||||
config.NewConfig<ProtoUp.GetUserPackagePurchaseSummaryRequest, AppUpSummary.GetUserPackagePurchaseSummaryQuery>()
|
||||
.Map(dest => dest.Filter, src => src.Filter);
|
||||
|
||||
config.NewConfig<AppUpSummary.GetUserPackagePurchaseSummaryResponseDto, ProtoUp.GetUserPackagePurchaseSummaryResponse>()
|
||||
.Map(dest => dest.TotalCount, src => src.TotalCount)
|
||||
.Map(dest => dest.TotalAmount, src => src.TotalAmount);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
using CMSMicroservice.Protobuf.Protos.ClubMembershipCycleHistory;
|
||||
using CMSMicroservice.WebApi.Common.Services;
|
||||
using CMSMicroservice.Application.ClubMembershipCycleHistoryCQ.Queries.GetAllClubMembershipCycleHistoryByFilter;
|
||||
|
||||
namespace CMSMicroservice.WebApi.Services;
|
||||
|
||||
public class ClubMembershipCycleHistoryService : ClubMembershipCycleHistoryContract.ClubMembershipCycleHistoryContractBase
|
||||
{
|
||||
private readonly IDispatchRequestToCQRS _dispatch;
|
||||
|
||||
public ClubMembershipCycleHistoryService(IDispatchRequestToCQRS dispatch) => _dispatch = dispatch;
|
||||
|
||||
public override Task<GetAllClubMembershipCycleHistoryByFilterResponse> GetAllClubMembershipCycleHistoryByFilter(
|
||||
GetAllClubMembershipCycleHistoryByFilterRequest request, ServerCallContext context) =>
|
||||
_dispatch.Handle<GetAllClubMembershipCycleHistoryByFilterRequest, GetAllClubMembershipCycleHistoryByFilterQuery, GetAllClubMembershipCycleHistoryByFilterResponse>(request, context);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using CMSMicroservice.Protobuf.Protos.ClubMembershipCycle;
|
||||
using CMSMicroservice.WebApi.Common.Services;
|
||||
using CMSMicroservice.Application.ClubMembershipCycleCQ.Queries.GetAllClubMembershipCycleByFilter;
|
||||
using CMSMicroservice.Application.ClubMembershipCycleCQ.Queries.GetClubMembershipCycleSummary;
|
||||
|
||||
namespace CMSMicroservice.WebApi.Services;
|
||||
|
||||
public class ClubMembershipCycleService : ClubMembershipCycleContract.ClubMembershipCycleContractBase
|
||||
{
|
||||
private readonly IDispatchRequestToCQRS _dispatch;
|
||||
|
||||
public ClubMembershipCycleService(IDispatchRequestToCQRS dispatch) => _dispatch = dispatch;
|
||||
|
||||
public override Task<GetAllClubMembershipCycleByFilterResponse> GetAllClubMembershipCycleByFilter(
|
||||
GetAllClubMembershipCycleByFilterRequest request, ServerCallContext context) =>
|
||||
_dispatch.Handle<GetAllClubMembershipCycleByFilterRequest, GetAllClubMembershipCycleByFilterQuery, GetAllClubMembershipCycleByFilterResponse>(request, context);
|
||||
|
||||
public override Task<GetClubMembershipCycleSummaryResponse> GetClubMembershipCycleSummary(
|
||||
GetClubMembershipCycleSummaryRequest request, ServerCallContext context) =>
|
||||
_dispatch.Handle<GetClubMembershipCycleSummaryRequest, GetClubMembershipCycleSummaryQuery, GetClubMembershipCycleSummaryResponse>(request, context);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
using CMSMicroservice.Protobuf.Protos.PaymentTransaction;
|
||||
using CMSMicroservice.WebApi.Common.Services;
|
||||
using CMSMicroservice.Application.PaymentTransactionCQ.Queries.GetAllPaymentTransactionByFilter;
|
||||
using CMSMicroservice.Application.PaymentTransactionCQ.Queries.GetPaymentTransactionSummary;
|
||||
|
||||
namespace CMSMicroservice.WebApi.Services;
|
||||
|
||||
public class PaymentTransactionService : PaymentTransactionContract.PaymentTransactionContractBase
|
||||
{
|
||||
private readonly IDispatchRequestToCQRS _dispatch;
|
||||
|
||||
public PaymentTransactionService(IDispatchRequestToCQRS dispatch) => _dispatch = dispatch;
|
||||
|
||||
public override Task<GetAllPaymentTransactionByFilterResponse> GetAllPaymentTransactionByFilter(
|
||||
GetAllPaymentTransactionByFilterRequest request, ServerCallContext context) =>
|
||||
_dispatch.Handle<GetAllPaymentTransactionByFilterRequest, GetAllPaymentTransactionByFilterQuery, GetAllPaymentTransactionByFilterResponse>(request, context);
|
||||
|
||||
public override Task<GetPaymentTransactionSummaryResponse> GetPaymentTransactionSummary(
|
||||
GetPaymentTransactionSummaryRequest request, ServerCallContext context) =>
|
||||
_dispatch.Handle<GetPaymentTransactionSummaryRequest, GetPaymentTransactionSummaryQuery, GetPaymentTransactionSummaryResponse>(request, context);
|
||||
}
|
||||
@@ -5,6 +5,7 @@ using CMSMicroservice.Application.TransactionsCQ.Commands.UpdateTransactions;
|
||||
using CMSMicroservice.Application.TransactionsCQ.Commands.DeleteTransactions;
|
||||
using CMSMicroservice.Application.TransactionsCQ.Queries.GetTransactions;
|
||||
using CMSMicroservice.Application.TransactionsCQ.Queries.GetAllTransactionsByFilter;
|
||||
using CMSMicroservice.Application.TransactionsCQ.Queries.GetTransactionSummary;
|
||||
using CMSMicroservice.Application.TransactionsCQ.Commands.VerifyTransaction;
|
||||
using CMSMicroservice.Application.TransactionsCQ.Commands.RefundTransaction;
|
||||
using CMSMicroservice.Application.TransactionsCQ.Queries.GetCustomerTransaction;
|
||||
@@ -69,6 +70,10 @@ public class TransactionsService : TransactionsContract.TransactionsContractBase
|
||||
{
|
||||
return await _dispatchRequestToCQRS.Handle<GetAllTransactionsByFilterRequest, GetAllTransactionsByFilterQuery, GetAllTransactionsByFilterResponse>(request, context);
|
||||
}
|
||||
|
||||
public override Task<GetTransactionSummaryResponse> GetTransactionSummary(
|
||||
GetTransactionSummaryRequest request, ServerCallContext context) =>
|
||||
_dispatchRequestToCQRS.Handle<GetTransactionSummaryRequest, GetTransactionSummaryQuery, GetTransactionSummaryResponse>(request, context);
|
||||
|
||||
public override async Task<VerifyTransactionResponse> VerifyTransaction(VerifyTransactionRequest request, ServerCallContext context)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
using CMSMicroservice.Protobuf.Protos.UserPackagePurchase;
|
||||
using CMSMicroservice.WebApi.Common.Services;
|
||||
using CMSMicroservice.Application.UserPackagePurchaseCQ.Queries.GetAllUserPackagePurchaseByFilter;
|
||||
using CMSMicroservice.Application.UserPackagePurchaseCQ.Queries.GetUserPackagePurchaseSummary;
|
||||
|
||||
namespace CMSMicroservice.WebApi.Services;
|
||||
|
||||
public class UserPackagePurchaseService : UserPackagePurchaseContract.UserPackagePurchaseContractBase
|
||||
{
|
||||
private readonly IDispatchRequestToCQRS _dispatch;
|
||||
|
||||
public UserPackagePurchaseService(IDispatchRequestToCQRS dispatch) => _dispatch = dispatch;
|
||||
|
||||
public override Task<GetAllUserPackagePurchaseByFilterResponse> GetAllUserPackagePurchaseByFilter(
|
||||
GetAllUserPackagePurchaseByFilterRequest request, ServerCallContext context) =>
|
||||
_dispatch.Handle<GetAllUserPackagePurchaseByFilterRequest, GetAllUserPackagePurchaseByFilterQuery, GetAllUserPackagePurchaseByFilterResponse>(request, context);
|
||||
|
||||
public override Task<GetUserPackagePurchaseSummaryResponse> GetUserPackagePurchaseSummary(
|
||||
GetUserPackagePurchaseSummaryRequest request, ServerCallContext context) =>
|
||||
_dispatch.Handle<GetUserPackagePurchaseSummaryRequest, GetUserPackagePurchaseSummaryQuery, GetUserPackagePurchaseSummaryResponse>(request, context);
|
||||
}
|
||||
@@ -5,8 +5,10 @@ using CMSMicroservice.Application.UserWalletCQ.Commands.UpdateUserWallet;
|
||||
using CMSMicroservice.Application.UserWalletCQ.Commands.DeleteUserWallet;
|
||||
using CMSMicroservice.Application.WalletCQ.Commands.ChargeMagicWallet;
|
||||
using CMSMicroservice.Application.WalletCQ.Commands.ChargeDiscountWallet;
|
||||
using CMSMicroservice.Application.WalletCQ.Commands.ChargeCreditWallet;
|
||||
using CMSMicroservice.Application.WalletCQ.Commands.VerifyMagicWalletCharge;
|
||||
using CMSMicroservice.Application.WalletCQ.Commands.VerifyDiscountWalletCharge;
|
||||
using CMSMicroservice.Application.WalletCQ.Commands.VerifyCreditWalletCharge;
|
||||
using CMSMicroservice.Application.UserWalletCQ.Queries.GetUserWallet;
|
||||
using CMSMicroservice.Application.UserWalletCQ.Queries.GetAllUserWalletByFilter;
|
||||
using CMSMicroservice.Application.UserWalletCQ.Queries.GetCustomerWalletHistory;
|
||||
@@ -242,6 +244,38 @@ public class UserWalletService : UserWalletContract.UserWalletContractBase
|
||||
}
|
||||
}
|
||||
|
||||
// ============= Credit (Main) Wallet Methods =============
|
||||
|
||||
public override async Task<InitiateCreditChargeResponse> InitiateCreditCharge(
|
||||
InitiateCreditChargeRequest request, ServerCallContext context)
|
||||
{
|
||||
var userId = GetCurrentUserId();
|
||||
|
||||
try
|
||||
{
|
||||
var result = await _sender.Send(new ChargeCreditWalletCommand
|
||||
{
|
||||
UserId = userId,
|
||||
Amount = request.Amount
|
||||
}, context.CancellationToken);
|
||||
|
||||
return new InitiateCreditChargeResponse
|
||||
{
|
||||
IsSuccess = result.IsSuccess,
|
||||
GatewayUrl = result.GatewayUrl ?? "",
|
||||
ErrorMessage = result.ErrorMessage ?? ""
|
||||
};
|
||||
}
|
||||
catch (PaymentInProgressException ex)
|
||||
{
|
||||
return new InitiateCreditChargeResponse
|
||||
{
|
||||
IsSuccess = false,
|
||||
ErrorMessage = ex.Message
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// ============= Wallet Verify Methods =============
|
||||
|
||||
public override async Task<VerifyWalletChargeResponse> VerifyMagicCharge(
|
||||
@@ -330,6 +364,57 @@ public class UserWalletService : UserWalletContract.UserWalletContractBase
|
||||
}
|
||||
}
|
||||
|
||||
public override async Task<VerifyWalletChargeResponse> VerifyCreditCharge(
|
||||
VerifyWalletChargeRequest request, ServerCallContext context)
|
||||
{
|
||||
_logger.LogInformation("VerifyCreditCharge called: Authority={Authority}, Status={Status}",
|
||||
request.Authority, request.Status);
|
||||
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(request.Authority))
|
||||
return new VerifyWalletChargeResponse { Success = false, Message = "کد Authority نامعتبر است" };
|
||||
|
||||
var paymentTx = await _context.PaymentTransactions
|
||||
.FirstOrDefaultAsync(pt => pt.Authority == request.Authority, context.CancellationToken);
|
||||
|
||||
if (paymentTx == null || !paymentTx.UserId.HasValue)
|
||||
{
|
||||
_logger.LogError("VerifyCreditCharge: PaymentTransaction not found for Authority={Authority}", request.Authority);
|
||||
return new VerifyWalletChargeResponse { Success = false, Message = "تراکنش یافت نشد" };
|
||||
}
|
||||
|
||||
if (!string.Equals(request.Status, "OK", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
_logger.LogWarning("VerifyCreditCharge: Payment cancelled by user. Authority={Authority}", request.Authority);
|
||||
return new VerifyWalletChargeResponse { Success = false, Message = "پرداخت توسط کاربر لغو شد" };
|
||||
}
|
||||
|
||||
var result = await _sender.Send(new VerifyCreditWalletChargeCommand
|
||||
{
|
||||
UserId = paymentTx.UserId.Value,
|
||||
Amount = paymentTx.Amount,
|
||||
Authority = request.Authority
|
||||
}, context.CancellationToken);
|
||||
|
||||
_logger.LogInformation("VerifyCreditCharge result: {Result}, Authority={Authority}, UserId={UserId}",
|
||||
result, request.Authority, paymentTx.UserId.Value);
|
||||
|
||||
return new VerifyWalletChargeResponse
|
||||
{
|
||||
Success = result,
|
||||
Message = result
|
||||
? "شارژ کیف پول اصلی با موفقیت انجام شد"
|
||||
: "شارژ کیف پول اصلی ناموفق بود"
|
||||
};
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "VerifyCreditCharge error: Authority={Authority}", request.Authority);
|
||||
return new VerifyWalletChargeResponse { Success = false, Message = ex.Message };
|
||||
}
|
||||
}
|
||||
|
||||
public override async Task<GetMagicWalletStatusResponse> GetMagicWalletStatus(
|
||||
Google.Protobuf.WellKnownTypes.Empty request, ServerCallContext context)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user