Files
BackOffice.BFF/src/BackOffice.BFF.WebApi/Common/Mappings/NetworkMembershipProfile.cs
masoodafar-web fe56b8f139
All checks were successful
Build and Deploy / build (push) Successful in 2m18s
feat: add GetAvailableWeeks query and update protobuf imports
2025-12-12 05:57:32 +03:30

94 lines
4.1 KiB
C#

using BackOffice.BFF.Application.NetworkMembershipCQ.Queries.GetNetworkTree;
using BackOffice.BFF.Application.NetworkMembershipCQ.Queries.GetUserNetworkInfo;
using BackOffice.BFF.Application.NetworkMembershipCQ.Queries.GetNetworkHistory;
using Foursat.BackOffice.BFF.NetworkMembership.Protos;
namespace BackOffice.BFF.WebApi.Common.Mappings;
public class NetworkMembershipProfile : IRegister
{
void IRegister.Register(TypeAdapterConfig config)
{
// GetNetworkTreeResponseDto -> GetNetworkTreeResponse
config.NewConfig<GetNetworkTreeResponseDto, GetNetworkTreeResponse>()
.MapWith(src => new GetNetworkTreeResponse
{
Nodes = { src.Nodes.Select(n => new NetworkTreeNodeModel
{
UserId = n.UserId,
UserName = n.UserName,
ParentId = n.ParentId,
NetworkLeg = n.NetworkLeg,
NetworkLevel = n.NetworkLevel,
IsActive = n.IsActive,
JoinedAt = n.JoinedAt.HasValue
? Timestamp.FromDateTime(DateTime.SpecifyKind(n.JoinedAt.Value, DateTimeKind.Utc))
: null
}) }
});
// NetworkTreeNodeDto -> NetworkTreeNodeModel
config.NewConfig<NetworkTreeNodeDto, NetworkTreeNodeModel>()
.MapWith(src => new NetworkTreeNodeModel
{
UserId = src.UserId,
UserName = src.UserName,
ParentId = src.ParentId,
NetworkLeg = src.NetworkLeg,
NetworkLevel = src.NetworkLevel,
IsActive = src.IsActive,
JoinedAt = src.JoinedAt.HasValue
? Timestamp.FromDateTime(DateTime.SpecifyKind(src.JoinedAt.Value, DateTimeKind.Utc))
: null
});
// GetUserNetworkInfoResponseDto -> GetUserNetworkResponse
config.NewConfig<GetUserNetworkInfoResponseDto, GetUserNetworkResponse>()
.MapWith(src => new GetUserNetworkResponse
{
Id = src.Id,
UserId = src.UserId,
UserName = src.UserName,
ParentId = src.ParentId,
ParentName = src.ParentName,
NetworkLeg = src.NetworkLeg,
LeftChildId = src.LeftChildId,
LeftChildName = src.LeftChildName,
RightChildId = src.RightChildId,
RightChildName = src.RightChildName,
NetworkLevel = src.NetworkLevel,
ReferralCode = src.ReferralCode,
JoinedAt = Timestamp.FromDateTime(DateTime.SpecifyKind(src.JoinedAt, DateTimeKind.Utc)),
Created = Timestamp.FromDateTime(DateTime.SpecifyKind(src.CreatedAt, DateTimeKind.Utc))
});
// GetNetworkHistoryResponseDto -> GetNetworkMembershipHistoryResponse
config.NewConfig<GetNetworkHistoryResponseDto, GetNetworkMembershipHistoryResponse>()
.MapWith(src => new GetNetworkMembershipHistoryResponse
{
MetaData = new BackOffice.BFF.Protobuf.Common.MetaData
{
CurrentPage = src.PageNumber,
PageSize = src.PageSize,
TotalCount = src.TotalCount,
TotalPage = (int)Math.Ceiling((double)src.TotalCount / src.PageSize)
},
Models = { src.History.Select(h => new NetworkMembershipHistoryModel
{
Id = h.Id,
UserId = h.UserId,
OldParentId = h.OldParentId,
NewParentId = h.NewParentId,
OldNetworkLeg = h.OldNetworkLeg,
NewNetworkLeg = h.NewNetworkLeg,
OldNetworkLevel = h.OldNetworkLevel,
NewNetworkLevel = h.NewNetworkLevel,
Action = h.Action,
PerformedBy = h.PerformedBy,
Reason = h.Reason,
Created = Timestamp.FromDateTime(DateTime.SpecifyKind(h.CreatedAt, DateTimeKind.Utc))
}) }
});
}
}