reeplace cerberos by talos
This commit is contained in:
		| @@ -0,0 +1,42 @@ | ||||
| // *********************************************************************** | ||||
| // <copyright file="ModuleMapper.cs"> | ||||
| //    AgileWebs | ||||
| // </copyright> | ||||
| // *********************************************************************** | ||||
| 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 | ||||
| { | ||||
|     /// <summary> | ||||
|     /// Handles mappings between | ||||
|     /// <see cref="ModuleRequest"/>, | ||||
|     /// and <see cref="ModuleAdapter"/> | ||||
|     /// </summary> | ||||
|     public static class ModuleMapper | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Maps the permissionRequest to ModuleAdapter. | ||||
|         /// </summary> | ||||
|         /// <param name="newModule">The Module to be mapped.</param> | ||||
|         /// <returns>A <see cref="ModuleAdapter"/> representing | ||||
|         /// the asynchronous execution of the service.</returns> | ||||
|         public static ModuleAdapter ToAdapter(this ModuleRequest newModule, IHttpContextAccessor httpContextAccessor) | ||||
|         { | ||||
|             return new ModuleAdapter | ||||
|             { | ||||
|                 Id = ObjectId.GenerateNewId().ToString(), | ||||
|                 Name = newModule.Name, | ||||
|                 Description = newModule.Description, | ||||
|                 Icon = newModule.Icon, | ||||
|                 Route = newModule.Route, | ||||
|                 Order = newModule.Order, | ||||
|                 Application = newModule.Application, | ||||
|                 CreatedAt = DateTime.UtcNow, | ||||
|                 CreatedBy = httpContextAccessor.HttpContext?.User?.FindFirst(ClaimTypes.Email)?.Value ?? string.Empty, | ||||
|             }; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,39 @@ | ||||
| // *********************************************************************** | ||||
| // <copyright file="PermissionMapper.cs"> | ||||
| //    AgileWebs | ||||
| // </copyright> | ||||
| // *********************************************************************** | ||||
| 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 | ||||
| { | ||||
|     /// <summary> | ||||
|     /// Handles mappings between | ||||
|     /// <see cref="PermissionRequest"/>, | ||||
|     /// and <see cref="PermissionAdapter"/> | ||||
|     /// </summary> | ||||
|     public static class PermissionMapper | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Maps the permissionRequest to PermissionAdapter. | ||||
|         /// </summary> | ||||
|         /// <param name="newPermission">The Permission to be mapped.</param> | ||||
|         /// <returns>A <see cref="PermissionAdapter"/> representing | ||||
|         /// the asynchronous execution of the service.</returns> | ||||
|         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 | ||||
|             }; | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										42
									
								
								Core.Thalos.Domain/Contexts/Onboarding/Mappers/RoleMapper.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								Core.Thalos.Domain/Contexts/Onboarding/Mappers/RoleMapper.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| // *********************************************************************** | ||||
| // <copyright file="RoleMapper.cs"> | ||||
| //    AgileWebs | ||||
| // </copyright> | ||||
| // *********************************************************************** | ||||
|  | ||||
| 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 | ||||
| { | ||||
|     /// <summary> | ||||
|     /// Handles mappings between | ||||
|     /// <see cref="RoleRequest"/>, | ||||
|     /// and <see cref="RoleAdapter"/> | ||||
|     /// </summary> | ||||
|     public static class RoleMapper | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Maps the RoleRequest to RoleAdapter. | ||||
|         /// </summary> | ||||
|         /// <param name="newRole">The Role to be mapped.</param> | ||||
|         /// <returns>A <see cref="RoleAdapter"/> representing | ||||
|         /// the asynchronous execution of the service.</returns> | ||||
|         public static RoleAdapter ToAdapter(this RoleRequest newRole, IHttpContextAccessor httpContextAccessor) | ||||
|         { | ||||
|             return new RoleAdapter | ||||
|             { | ||||
|                 Id = ObjectId.GenerateNewId().ToString(), | ||||
|                 Name = newRole.Name, | ||||
|                 Description = newRole.Description, | ||||
|                 Applications = newRole.Applications, | ||||
|                 Modules = newRole.Modules, | ||||
|                 Permissions = newRole.Permissions, | ||||
|                 CreatedAt = DateTime.UtcNow, | ||||
|                 CreatedBy = httpContextAccessor.HttpContext?.User?.FindFirst(ClaimTypes.Email)?.Value ?? string.Empty | ||||
|             }; | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										46
									
								
								Core.Thalos.Domain/Contexts/Onboarding/Mappers/UserMapper.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								Core.Thalos.Domain/Contexts/Onboarding/Mappers/UserMapper.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | ||||
| // *********************************************************************** | ||||
| // <copyright file="UserMapper.cs"> | ||||
| //    AgileWebs | ||||
| // </copyright> | ||||
| // *********************************************************************** | ||||
| 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 | ||||
| { | ||||
|     /// <summary> | ||||
|     /// Handles mappings between | ||||
|     /// <see cref="UserRequest"/>, | ||||
|     /// and <see cref="UserAdapter"/> | ||||
|     /// </summary> | ||||
|     public static class UserMapper | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Maps the UserRequest to UserAdapter. | ||||
|         /// </summary> | ||||
|         /// <param name="newUser">The User to be mapped.</param> | ||||
|         /// <returns>A <see cref="UserAdapter"/> representing | ||||
|         /// the asynchronous execution of the service.</returns> | ||||
|         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 | ||||
|             }; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,68 @@ | ||||
| // *********************************************************************** | ||||
| // <copyright file="ModuleRequest.cs"> | ||||
| //     AgileWebs | ||||
| // </copyright> | ||||
| // *********************************************************************** | ||||
|  | ||||
| using Core.Thalos.Adapters.Common.Enums; | ||||
| using MongoDB.Bson; | ||||
| using MongoDB.Bson.Serialization.Attributes; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Core.Thalos.Domain.Contexts.Onboarding.Request | ||||
| { | ||||
|     /// <summary> | ||||
|     /// Data transfer object (DTO) for adding modules. | ||||
|     /// </summary> | ||||
|     public class ModuleRequest | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Gets or sets the name of the module. | ||||
|         /// </summary> | ||||
|         [BsonElement("name")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("name")] | ||||
|         public string Name { get; set; } = null!; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the description of the module. | ||||
|         /// </summary> | ||||
|         [BsonElement("description")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("description")] | ||||
|         public string? Description { get; set; } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the icon of the module. | ||||
|         /// </summary> | ||||
|         [BsonElement("icon")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("icon")] | ||||
|         public string? Icon { get; set; } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the route of the module. | ||||
|         /// </summary> | ||||
|         [BsonElement("route")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("route")] | ||||
|         public string Route { get; set; } = null!; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the order of the module. | ||||
|         /// </summary> | ||||
|         [BsonElement("order")] | ||||
|         [BsonRepresentation(BsonType.Int32)] | ||||
|         [JsonPropertyName("order")] | ||||
|         public int? Order { get; set; } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the application of the module. | ||||
|         /// </summary> | ||||
|         [BsonElement("application")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("application")] | ||||
|         [JsonConverter(typeof(JsonStringEnumConverter))] | ||||
|         public ApplicationsEnum? Application { get; set; } = null!; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,44 @@ | ||||
| // *********************************************************************** | ||||
| // <copyright file="PermissionRequest.cs"> | ||||
| //     AgileWebs | ||||
| // </copyright> | ||||
| // *********************************************************************** | ||||
|  | ||||
| using Core.Thalos.Adapters.Common.Constants; | ||||
| using MongoDB.Bson; | ||||
| using MongoDB.Bson.Serialization.Attributes; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Core.Thalos.Domain.Contexts.Onboarding.Request | ||||
| { | ||||
|     /// <summary> | ||||
|     /// Data transfer object (DTO) for adding permissions. | ||||
|     /// </summary> | ||||
|     public class PermissionRequest | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Gets or sets the name of the permission. | ||||
|         /// </summary> | ||||
|         [BsonElement("name")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("name")] | ||||
|         public string Name { get; set; } = null!; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the description of the permission. | ||||
|         /// </summary> | ||||
|         [BsonElement("description")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("description")] | ||||
|         public string? Description { get; set; } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the access level of the permission. | ||||
|         /// </summary> | ||||
|         [BsonElement("accessLevel")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("accessLevel")] | ||||
|         [JsonConverter(typeof(JsonStringEnumConverter))] | ||||
|         public AccessLevelEnum? AccessLevel { get; set; } = null!; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,57 @@ | ||||
| // *********************************************************************** | ||||
| // <copyright file="RoleRequest.cs"> | ||||
| //     AgileWebs | ||||
| // </copyright> | ||||
| // *********************************************************************** | ||||
|  | ||||
| using Core.Thalos.Adapters.Common.Enums; | ||||
| using MongoDB.Bson; | ||||
| using MongoDB.Bson.Serialization.Attributes; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Core.Thalos.Domain.Contexts.Onboarding.Request | ||||
| { | ||||
|     /// <summary> | ||||
|     /// Data transfer object (DTO) for adding a role. | ||||
|     /// </summary> | ||||
|     public class RoleRequest | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Gets or sets the name of the role. | ||||
|         /// </summary> | ||||
|         [BsonElement("name")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("name")] | ||||
|         public string Name { get; set; } = null!; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the description of the role. | ||||
|         /// </summary> | ||||
|         [BsonElement("description")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("description")] | ||||
|         public string? Description { get; set; } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the status of the entity. | ||||
|         /// </summary> | ||||
|         [BsonElement("applications")] | ||||
|         [JsonPropertyName("applications")] | ||||
|         [JsonConverter(typeof(EnumArrayJsonConverter<ApplicationsEnum>))] | ||||
|         public ApplicationsEnum[]? Applications { get; set; } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the modules of the role. | ||||
|         /// </summary> | ||||
|         [BsonElement("modules")] | ||||
|         [JsonPropertyName("modules")] | ||||
|         public string[] Modules { get; set; } = null!; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the permissions of the role. | ||||
|         /// </summary> | ||||
|         [BsonElement("permissions")] | ||||
|         [JsonPropertyName("permissions")] | ||||
|         public string[] Permissions { get; set; } = null!; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,72 @@ | ||||
| // *********************************************************************** | ||||
| // <copyright file="UserAddDto.cs"> | ||||
| //     AgileWebs | ||||
| // </copyright> | ||||
| // *********************************************************************** | ||||
|  | ||||
| using MongoDB.Bson; | ||||
| using MongoDB.Bson.Serialization.Attributes; | ||||
| using System.Text.Json.Serialization; | ||||
|  | ||||
| namespace Core.Thalos.Domain.Contexts.Onboarding.Request | ||||
| { | ||||
|     /// <summary> | ||||
|     /// Data transfer object (DTO) for adding a user. | ||||
|     /// </summary> | ||||
|     public class UserRequest | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Gets or sets the email address of the user. | ||||
|         /// </summary> | ||||
|         [BsonElement("email")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("email")] | ||||
|         public string Email { get; set; } = null!; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the name of the user. | ||||
|         /// </summary> | ||||
|         [BsonElement("name")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("name")] | ||||
|         public string Name { get; set; } = null!; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the middlename of the user. | ||||
|         /// </summary> | ||||
|         [BsonElement("middleName")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("middleName")] | ||||
|         public string MiddleName { get; set; } = null!; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the last name of the user. | ||||
|         /// </summary> | ||||
|         [BsonElement("lastName")] | ||||
|         [BsonRepresentation(BsonType.String)] | ||||
|         [JsonPropertyName("lastName")] | ||||
|         public string LastName { get; set; } = null!; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the role ID of the user. | ||||
|         /// </summary> | ||||
|         [BsonElement("roleId")] | ||||
|         [BsonRepresentation(BsonType.ObjectId)] | ||||
|         [JsonPropertyName("roleId")] | ||||
|         public string RoleId { get; set; } = null!; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the array of companies associated with the user. | ||||
|         /// </summary> | ||||
|         [BsonElement("companies")] | ||||
|         [JsonPropertyName("companies")] | ||||
|         public string[] Companies { get; set; } = null!; | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets or sets the array of projects associated with the user. | ||||
|         /// </summary> | ||||
|         [BsonElement("projects")] | ||||
|         [JsonPropertyName("projects")] | ||||
|         public string[]? Projects { get; set; } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										13
									
								
								Core.Thalos.Domain/Core.Thalos.Domain.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Core.Thalos.Domain/Core.Thalos.Domain.csproj
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| <Project Sdk="Microsoft.NET.Sdk"> | ||||
|  | ||||
|   <PropertyGroup> | ||||
|     <TargetFramework>net8.0</TargetFramework> | ||||
|     <ImplicitUsings>enable</ImplicitUsings> | ||||
|     <Nullable>enable</Nullable> | ||||
|   </PropertyGroup> | ||||
|  | ||||
|   <ItemGroup> | ||||
|     <PackageReference Include="Thalos.Building.Blocks" Version="0.0.1" /> | ||||
|   </ItemGroup> | ||||
|  | ||||
| </Project> | ||||
		Reference in New Issue
	
	Block a user
	 Sergio Matias Urquin
					Sergio Matias Urquin