93 lines
5.5 KiB
C#
93 lines
5.5 KiB
C#
using FrontOffice.BFF.Application.CommissionCQ.Queries.GetMyCommissionPayouts;
|
|
using FrontOffice.BFF.Application.CommissionCQ.Queries.GetMyWeeklyBalances;
|
|
using FrontOffice.BFF.Application.CommissionCQ.Queries.GetWeekDefinitions;
|
|
using Google.Protobuf.WellKnownTypes;
|
|
using ProtoDto = FrontOffice.BFF.Commission.Protobuf.Protos.Commission;
|
|
|
|
namespace FrontOffice.BFF.WebApi.Common.Mappings;
|
|
|
|
public class CommissionProfile : IRegister
|
|
{
|
|
void IRegister.Register(TypeAdapterConfig config)
|
|
{
|
|
// Request -> Query mappings
|
|
config.NewConfig<ProtoDto.GetMyCommissionPayoutsRequest, GetMyCommissionPayoutsQuery>()
|
|
.Map(dest => dest.PageNumber, src => src.PageNumber)
|
|
.Map(dest => dest.PageSize, src => src.PageSize)
|
|
.Map(dest => dest.WeekDefinitionId, src => src.WeekDefinitionId != null ? (long?)src.WeekDefinitionId.Value : null)
|
|
.Map(dest => dest.Status, src => src.Status);
|
|
|
|
config.NewConfig<ProtoDto.GetMyWeeklyBalancesRequest, GetMyWeeklyBalancesQuery>()
|
|
.MapWith(src => new GetMyWeeklyBalancesQuery
|
|
{
|
|
PageNumber = src.PageNumber,
|
|
PageSize = src.PageSize,
|
|
WeekDefinitionId = src.WeekDefinitionId != null ? src.WeekDefinitionId.Value : null,
|
|
OnlyActive = src.OnlyActive
|
|
});
|
|
|
|
// Response mappings
|
|
config.NewConfig<GetMyCommissionPayoutsResponseDto, ProtoDto.GetMyCommissionPayoutsResponse>()
|
|
.Map(dest => dest.MetaData, src => new ProtoDto.MetaData { TotalCount = src.TotalCount })
|
|
.Map(dest => dest.Payouts, src => src.Payouts);
|
|
|
|
config.NewConfig<CommissionPayoutDto, ProtoDto.CommissionPayoutModel>()
|
|
.Map(dest => dest.Id, src => src.Id)
|
|
.Map(dest => dest.WeekDefinitionId, src => src.WeekDefinitionId)
|
|
.Map(dest => dest.WeekDisplayName, src => src.WeekDisplayName)
|
|
.Map(dest => dest.BalancesEarned, src => src.BalancesEarned)
|
|
.Map(dest => dest.TotalAmount, src => src.TotalAmount)
|
|
.Map(dest => dest.AmountFormatted, src => src.AmountFormatted)
|
|
.Map(dest => dest.Status, src => src.Status)
|
|
.Map(dest => dest.CalculatedDate, src => Timestamp.FromDateTime(DateTime.SpecifyKind(src.CalculatedDate, DateTimeKind.Utc)))
|
|
.Map(dest => dest.DatePersian, src => src.DatePersian);
|
|
|
|
config.NewConfig<GetMyWeeklyBalancesResponseDto, ProtoDto.GetMyWeeklyBalancesResponse>()
|
|
.Map(dest => dest.MetaData, src => new ProtoDto.MetaData { TotalCount = src.TotalCount })
|
|
.Map(dest => dest.Balances, src => src.Balances)
|
|
.Map(dest => dest.TotalLeftBalances, src => src.TotalLeftBalances)
|
|
.Map(dest => dest.TotalRightBalances, src => src.TotalRightBalances)
|
|
.Map(dest => dest.WeakerLeg, src => src.WeakerLeg);
|
|
|
|
config.NewConfig<WeeklyBalanceItemDto, ProtoDto.WeeklyBalanceModel>()
|
|
.Map(dest => dest.Id, src => src.Id)
|
|
.Map(dest => dest.WeekDefinitionId, src => src.WeekDefinitionId)
|
|
.Map(dest => dest.WeekDisplayName, src => src.WeekLabel)
|
|
.Map(dest => dest.LeftLegBalances, src => src.LeftLegBalances)
|
|
.Map(dest => dest.RightLegBalances, src => src.RightLegBalances)
|
|
.Map(dest => dest.LeftLegCarryover, src => src.LeftLegCarryover)
|
|
.Map(dest => dest.RightLegCarryover, src => src.RightLegCarryover)
|
|
.Map(dest => dest.LeftLegNewMembers, src => src.LeftLegNewMembers)
|
|
.Map(dest => dest.RightLegNewMembers, src => src.RightLegNewMembers)
|
|
.Map(dest => dest.TotalBalances, src => src.TotalBalances)
|
|
.Map(dest => dest.WeeklyPoolContribution, src => src.WeeklyPoolContribution)
|
|
.Map(dest => dest.IsExpired, src => src.IsExpired)
|
|
.Map(dest => dest.DatePersian, src => src.DatePersian);
|
|
|
|
// GetWeekDefinitions mappings
|
|
config.NewConfig<ProtoDto.GetWeekDefinitionsRequest, GetWeekDefinitionsQuery>()
|
|
.Map(dest => dest.SearchText, src => src.SearchText)
|
|
.Map(dest => dest.PageNumber, src => src.PageNumber > 0 ? src.PageNumber : 1)
|
|
.Map(dest => dest.PageSize, src => src.PageSize > 0 ? src.PageSize : 100)
|
|
.Map(dest => dest.GregorianYear, src => src.GregorianYear)
|
|
.Map(dest => dest.PersianYear, src => src.PersianYear)
|
|
.Map(dest => dest.IsActive, src => src.IsActive);
|
|
|
|
config.NewConfig<GetWeekDefinitionsResponseDto, ProtoDto.GetWeekDefinitionsResponse>()
|
|
.Map(dest => dest.TotalCount, src => src.TotalCount)
|
|
.Map(dest => dest.Data, src => src.Data);
|
|
config.NewConfig<WeekDefinitionDto, ProtoDto.WeekDefinitionModel>()
|
|
.Map(dest => dest.Id, src => src.Id)
|
|
.Map(dest => dest.WeekOrder, src => src.WeekOrder)
|
|
.Map(dest => dest.DisplayName, src => src.DisplayName)
|
|
.Map(dest => dest.StartDate, src => Timestamp.FromDateTime(DateTime.SpecifyKind(src.StartDate, DateTimeKind.Utc)))
|
|
.Map(dest => dest.EndDate, src => Timestamp.FromDateTime(DateTime.SpecifyKind(src.EndDate, DateTimeKind.Utc)))
|
|
.Map(dest => dest.GregorianYear, src => src.GregorianYear)
|
|
.Map(dest => dest.PersianYear, src => src.PersianYear)
|
|
.Map(dest => dest.IsActive, src => src.IsActive)
|
|
.Map(dest => dest.IsCurrentWeek, src => src.IsCurrentWeek)
|
|
.Map(dest => dest.StartDatePersian, src => src.StartDatePersian)
|
|
.Map(dest => dest.EndDatePersian, src => src.EndDatePersian);
|
|
}
|
|
}
|