// *********************************************************************** // // HEATH // // *********************************************************************** using Core.Cerberos.Adapters; using Core.Cerberos.Domain.Contexts.Onboarding.Request; using Microsoft.AspNetCore.Http; using MongoDB.Bson; using System.Security.Claims; namespace Core.Cerberos.Domain.Contexts.Onboarding.Mappers { /// /// Handles mappings between /// , /// and /// public static class PermissionMapper { /// /// Maps the permissionRequest to PermissionAdapter. /// /// The Permission to be mapped. /// A representing /// the asynchronous execution of the service. public static PermissionAdapter ToAdapter(this PermissionRequest newPermission, IHttpContextAccessor httpContextAccessor) { return new PermissionAdapter { Id = ObjectId.GenerateNewId().ToString(), Name = newPermission.Name, Description = newPermission.Description, CreatedAt = DateTime.UtcNow, CreatedBy = httpContextAccessor.HttpContext?.User?.FindFirst(ClaimTypes.Email)?.Value ?? string.Empty, AccessLevel = newPermission.AccessLevel }; } } }