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() .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() .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() .Map(dest => dest.MetaData, src => new ProtoDto.MetaData { TotalCount = src.TotalCount }) .Map(dest => dest.Payouts, src => src.Payouts); config.NewConfig() .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() .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() .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() .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() .Map(dest => dest.TotalCount, src => src.TotalCount) .Map(dest => dest.Data, src => src.Data); config.NewConfig() .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); } }