39 lines
1.9 KiB
C#
39 lines
1.9 KiB
C#
using FrontOffice.BFF.Application.ConfigurationCQ.Queries.GetClubConfiguration;
|
|
using FrontOffice.BFF.Application.ConfigurationCQ.Queries.GetClubFeatures;
|
|
using Google.Protobuf.WellKnownTypes;
|
|
using ProtoDto = FrontOffice.BFF.Configuration.Protobuf.Protos.Configuration;
|
|
|
|
namespace FrontOffice.BFF.WebApi.Common.Mappings;
|
|
|
|
public class ConfigurationProfile : IRegister
|
|
{
|
|
void IRegister.Register(TypeAdapterConfig config)
|
|
{
|
|
// GetClubConfiguration mappings
|
|
config.NewConfig<GetClubConfigurationResponseDto, ProtoDto.GetClubConfigurationResponse>()
|
|
.Map(dest => dest.ActivationFee, src => src.ActivationFee)
|
|
.Map(dest => dest.MembershipGiftValue, src => src.MembershipGiftValue);
|
|
|
|
// GetClubFeatures mappings
|
|
config.NewConfig<GetClubFeaturesResponseDto, ProtoDto.GetClubFeaturesResponse>()
|
|
.MapWith(src => new ProtoDto.GetClubFeaturesResponse
|
|
{
|
|
Features = { src.Features.Select(f => f.Adapt<ProtoDto.ClubFeatureModel>()) }
|
|
});
|
|
|
|
config.NewConfig<ClubFeatureItemDto, ProtoDto.ClubFeatureModel>()
|
|
.Map(dest => dest.Id, src => src.Id)
|
|
.Map(dest => dest.Title, src => src.Title)
|
|
.Map(dest => dest.Description, src => src.Description ?? "")
|
|
.Map(dest => dest.IsEnabled, src => src.IsEnabled)
|
|
.Map(dest => dest.DisplayOrder, src => src.DisplayOrder)
|
|
.Map(dest => dest.GrantedAt, src => src.GrantedAt != DateTime.MinValue
|
|
? Timestamp.FromDateTime(DateTime.SpecifyKind(src.GrantedAt, DateTimeKind.Utc))
|
|
: null)
|
|
.Map(dest => dest.CreatedAt, src => src.CreatedAt != DateTime.MinValue
|
|
? Timestamp.FromDateTime(DateTime.SpecifyKind(src.CreatedAt, DateTimeKind.Utc))
|
|
: null)
|
|
.Map(dest => dest.Notes, src => src.Notes ?? "");
|
|
}
|
|
}
|