// *********************************************************************** // // AgileWebs // // *********************************************************************** using Core.Thalos.Adapters; using Core.Thalos.Domain.Contexts.Onboarding.Request; using Microsoft.AspNetCore.Http; using MongoDB.Bson; using System.Security.Claims; namespace Core.Thalos.Domain.Contexts.Onboarding.Mappers { /// /// Handles mappings between /// , /// and /// public static class UserMapper { /// /// Maps the UserRequest to UserAdapter. /// /// The User to be mapped. /// A representing /// the asynchronous execution of the service. public static UserAdapter ToAdapter(this UserRequest newUser, IHttpContextAccessor httpContextAccessor) { return new UserAdapter { Id = ObjectId.GenerateNewId().ToString(), Guid = Guid.NewGuid().ToString(), Email = newUser.Email, Name = newUser.Name, MiddleName = newUser.MiddleName, LastName = newUser.LastName, DisplayName = $"{newUser.Name} {newUser.MiddleName} {newUser.LastName}", RoleId = newUser.RoleId, Companies = newUser.Companies, Projects = newUser.Projects, CreatedAt = DateTime.UtcNow, CreatedBy = httpContextAccessor.HttpContext?.User?.FindFirst(ClaimTypes.Email)?.Value ?? string.Empty }; } } }