Add project files.
This commit is contained in:
		
							
								
								
									
										170
									
								
								Core.Cerberos.Service.API/Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								Core.Cerberos.Service.API/Program.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,170 @@ | ||||
| using Core.Cerberos.Adapters.Extensions; | ||||
| using Core.Cerberos.Adapters.Helpers; | ||||
| using Core.Cerberos.Application.UseCases.Modules; | ||||
| using Core.Cerberos.Application.UseCases.Modules.Adapter; | ||||
| using Core.Cerberos.Application.UseCases.Modules.Input; | ||||
| using Core.Cerberos.Application.UseCases.Modules.Ports; | ||||
| using Core.Cerberos.Application.UseCases.Modules.Validator; | ||||
| using Core.Cerberos.Application.UseCases.Permissions; | ||||
| using Core.Cerberos.Application.UseCases.Permissions.Adapter; | ||||
| using Core.Cerberos.Application.UseCases.Permissions.Input; | ||||
| using Core.Cerberos.Application.UseCases.Permissions.Ports; | ||||
| using Core.Cerberos.Application.UseCases.Permissions.Validator; | ||||
| using Core.Cerberos.Application.UseCases.Role; | ||||
| using Core.Cerberos.Application.UseCases.Roles.Adapter; | ||||
| using Core.Cerberos.Application.UseCases.Roles.Input; | ||||
| using Core.Cerberos.Application.UseCases.Roles.Ports; | ||||
| using Core.Cerberos.Application.UseCases.Roles.Validator; | ||||
| using Core.Cerberos.Application.UseCases.Users; | ||||
| using Core.Cerberos.Application.UseCases.Users.Adapter; | ||||
| using Core.Cerberos.Application.UseCases.Users.Input; | ||||
| using Core.Cerberos.Application.UseCases.Users.Ports; | ||||
| using Core.Cerberos.Application.UseCases.Users.Validator; | ||||
| using Core.Cerberos.External.ClientConfiguration; | ||||
| using Core.Cerberos.Service.API.Extensions; | ||||
| using FluentValidation; | ||||
| using Lib.Architecture.BuildingBlocks; | ||||
| using Microsoft.AspNetCore.ResponseCompression; | ||||
| using System.IO.Compression; | ||||
|  | ||||
| var builder = WebApplication.CreateBuilder(args); | ||||
|  | ||||
| var authSettings = AuthHelper.GetAuthSettings(builder, "cerberos_service"); | ||||
|  | ||||
| builder.Services.ConfigureAuthentication(builder.Configuration, authSettings); | ||||
|  | ||||
| builder.Host.ConfigureServices((context, services) => | ||||
| { | ||||
|     services.AddCors(options => | ||||
|     { | ||||
|         options.AddPolicy("AllowAll", policyBuilder => | ||||
|             policyBuilder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()); | ||||
|     }); | ||||
|     services.AddMvc().AddJsonOptions(options => | ||||
|     { | ||||
|         options.JsonSerializerOptions.WriteIndented = true; | ||||
|         options.JsonSerializerOptions.MaxDepth = 20; | ||||
|         options.JsonSerializerOptions.NumberHandling = System.Text.Json.Serialization.JsonNumberHandling.AllowNamedFloatingPointLiterals; | ||||
|     }); | ||||
|     services.Configure<BrotliCompressionProviderOptions>(options => | ||||
|     { | ||||
|         options.Level = CompressionLevel.SmallestSize; | ||||
|     }); | ||||
|     services.Configure<GzipCompressionProviderOptions>(options => | ||||
|     { | ||||
|         options.Level = CompressionLevel.SmallestSize; | ||||
|     }); | ||||
|     services.AddResponseCompression(options => | ||||
|     { | ||||
|         options.EnableForHttps = true; | ||||
|         options.Providers.Add<BrotliCompressionProvider>(); | ||||
|         options.Providers.Add<GzipCompressionProvider>(); | ||||
|     }); | ||||
|  | ||||
|     services.AddResponseCaching(); | ||||
|     services.AddControllers(); | ||||
|     services.AddEndpointsApiExplorer(); | ||||
|     builder.Services.AddSwagger(builder.Configuration, "Core.Cerberos.Service.API.xml", authSettings); | ||||
|     builder.Services.AddVersioning(builder.Configuration); | ||||
|     services.AddLogging(); | ||||
|     services.AddProblemDetails(); | ||||
|  | ||||
|     //Register Stuff | ||||
|     services.RegisterExternalLayer(builder.Configuration); | ||||
|  | ||||
|     services.AddScoped<IUserPort, UserPort>(); | ||||
|     services.AddScoped<IComponentHandler<GetAllUsersRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<GetUserRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<LoginUserRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<LogoutUserRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<GetUserByEmailRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<AddCompanyToUserRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<RemoveCompanyFromUserRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<AddProjectToUserRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<RemoveProjectFromUserRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<ValidateUserExistenceRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<GetTokenAdapterRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<GetConsentFormPDFRequest>, UserHandler>(); | ||||
|     services.AddScoped<IComponentHandler<AcceptUserConsentFormRequest>, UserHandler>(); | ||||
|  | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<CreateUserValidator>(); | ||||
|     services.AddScoped<IValidator<CreateUserRequest>, CreateUserValidator>(); | ||||
|     services.AddScoped<IComponentHandler<CreateUserRequest>, UserHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<UpdateUserValidator>(); | ||||
|     services.AddScoped<IValidator<UpdateUserRequest>, UpdateUserValidator>(); | ||||
|     services.AddScoped<IComponentHandler<UpdateUserRequest>, UserHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<ChangeUserStatusValidator>(); | ||||
|     services.AddScoped<IValidator<ChangeUserStatusRequest>, ChangeUserStatusValidator>(); | ||||
|     services.AddScoped<IComponentHandler<ChangeUserStatusRequest>, UserHandler>(); | ||||
|  | ||||
|     services.AddScoped<IRolePort, RolePort>(); | ||||
|     services.AddScoped<IComponentHandler<GetAllRolesRequest>, RoleHandler>(); | ||||
|     services.AddScoped<IComponentHandler<GetRoleRequest>, RoleHandler>(); | ||||
|     services.AddScoped<IComponentHandler<AddApplicationToRoleRequest>, RoleHandler>(); | ||||
|     services.AddScoped<IComponentHandler<RemoveApplicationFromRoleRequest>, RoleHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<CreateRoleValidator>(); | ||||
|     services.AddScoped<IValidator<CreateRoleRequest>, CreateRoleValidator>(); | ||||
|     services.AddScoped<IComponentHandler<CreateRoleRequest>, RoleHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<UpdateRoleValidator>(); | ||||
|     services.AddScoped<IValidator<UpdateRoleRequest>, UpdateRoleValidator>(); | ||||
|     services.AddScoped<IComponentHandler<UpdateRoleRequest>, RoleHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<ChangeRoleStatusValidator>(); | ||||
|     services.AddScoped<IValidator<ChangeRoleStatusRequest>, ChangeRoleStatusValidator>(); | ||||
|     services.AddScoped<IComponentHandler<ChangeRoleStatusRequest>, RoleHandler>(); | ||||
|  | ||||
|     services.AddScoped<IPermissionPort, PermissionPort>(); | ||||
|     services.AddScoped<IComponentHandler<GetAllPermissionsRequest>, PermissionHandler>(); | ||||
|     services.AddScoped<IComponentHandler<GetPermissionRequest>, PermissionHandler>(); | ||||
|     services.AddScoped<IComponentHandler<GetAllPermissionsByListRequest>, PermissionHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<CreatePermissionValidator>(); | ||||
|     services.AddScoped<IValidator<CreatePermissionRequest>, CreatePermissionValidator>(); | ||||
|     services.AddScoped<IComponentHandler<CreatePermissionRequest>, PermissionHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<UpdatePermissionValidator>(); | ||||
|     services.AddScoped<IValidator<UpdatePermissionRequest>, UpdatePermissionValidator>(); | ||||
|     services.AddScoped<IComponentHandler<UpdatePermissionRequest>, PermissionHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<ChangePermissionStatusValidator>(); | ||||
|     services.AddScoped<IValidator<ChangePermissionStatusRequest>, ChangePermissionStatusValidator>(); | ||||
|     services.AddScoped<IComponentHandler<ChangePermissionStatusRequest>, PermissionHandler>(); | ||||
|  | ||||
|     services.AddScoped<IModulePort, ModulePort>(); | ||||
|     services.AddScoped<IComponentHandler<GetAllModulesRequest>, ModuleHandler>(); | ||||
|     services.AddScoped<IComponentHandler<GetModuleRequest>, ModuleHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<GetAllModulesByListValidator>(); | ||||
|     services.AddScoped<IValidator<GetAllModulesByListRequest>, GetAllModulesByListValidator>(); | ||||
|     services.AddScoped<IComponentHandler<GetAllModulesByListRequest>, ModuleHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<CreateModuleValidator>(); | ||||
|     services.AddScoped<IValidator<CreateModuleRequest>, CreateModuleValidator>(); | ||||
|     services.AddScoped<IComponentHandler<CreateModuleRequest>, ModuleHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<UpdateModuleValidator>(); | ||||
|     services.AddScoped<IValidator<UpdateModuleRequest>, UpdateModuleValidator>(); | ||||
|     services.AddScoped<IComponentHandler<UpdateModuleRequest>, ModuleHandler>(); | ||||
|  | ||||
|     services.AddValidatorsFromAssemblyContaining<ChangeModuleStatusValidator>(); | ||||
|     services.AddScoped<IValidator<ChangeModuleStatusRequest>, ChangeModuleStatusValidator>(); | ||||
|     services.AddScoped<IComponentHandler<ChangeModuleStatusRequest>, ModuleHandler>(); | ||||
| }); | ||||
|  | ||||
| var app = builder.Build(); | ||||
| app.UseSwaggerUI(builder.Configuration, authSettings); | ||||
| app.ConfigureSwagger(builder.Configuration); | ||||
| app.UseResponseCompression(); | ||||
| app.UseResponseCaching(); | ||||
| app.UseHttpsRedirection(); | ||||
| app.UseCors("AllowAll"); | ||||
| app.UseAuthorization(); | ||||
| app.MapControllers(); | ||||
|  | ||||
| app.Run(); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Sergio Matias Urquin
					Sergio Matias Urquin