Files
Core.Thalos.Service.API/Core.Thalos.Service.API/Extensions/ServiceCollectionExtension.cs

157 lines
8.5 KiB
C#

using Core.Thalos.Application.UseCases.Modules;
using Core.Thalos.Application.UseCases.Modules.Adapter;
using Core.Thalos.Application.UseCases.Modules.Input;
using Core.Thalos.Application.UseCases.Modules.Ports;
using Core.Thalos.Application.UseCases.Modules.Validator;
using Core.Thalos.Application.UseCases.Permissions;
using Core.Thalos.Application.UseCases.Permissions.Adapter;
using Core.Thalos.Application.UseCases.Permissions.Input;
using Core.Thalos.Application.UseCases.Permissions.Ports;
using Core.Thalos.Application.UseCases.Permissions.Validator;
using Core.Thalos.Application.UseCases.Role;
using Core.Thalos.Application.UseCases.Roles.Adapter;
using Core.Thalos.Application.UseCases.Roles.Input;
using Core.Thalos.Application.UseCases.Roles.Ports;
using Core.Thalos.Application.UseCases.Roles.Validator;
using Core.Thalos.Application.UseCases.Tenants;
using Core.Thalos.Application.UseCases.Tenants.Adapter;
using Core.Thalos.Application.UseCases.Tenants.Input;
using Core.Thalos.Application.UseCases.Tenants.Ports;
using Core.Thalos.Application.UseCases.Tenants.Validator;
using Core.Thalos.Application.UseCases.Users;
using Core.Thalos.Application.UseCases.Users.Adapter;
using Core.Thalos.Application.UseCases.Users.Input;
using Core.Thalos.Application.UseCases.Users.Ports;
using Core.Thalos.Application.UseCases.Users.Validator;
using FluentValidation;
using Lib.Architecture.BuildingBlocks;
namespace Core.Thalos.Service.API.Extensions
{
public static class ServiceCollectionExtension
{
public static IServiceCollection AddServiceConfigurationLayer(this IServiceCollection services)
{
#region User Services
services.AddScoped<IUserPort, UserPort>();
services.AddScoped<IComponentHandler<GetAllUsersRequest>, UserHandler>();
services.AddScoped<IComponentHandler<GetUserRequest>, UserHandler>();
services.AddScoped<IComponentHandler<DeleteUserRequest>, UserHandler>();
services.AddScoped<IComponentHandler<LoginUserRequest>, UserHandler>();
services.AddScoped<IComponentHandler<LogoutUserRequest>, UserHandler>();
services.AddScoped<IComponentHandler<GetUserByEmailRequest>, UserHandler>();
services.AddScoped<IComponentHandler<ValidateUserExistenceRequest>, UserHandler>();
services.AddScoped<IComponentHandler<GetTokenAdapterRequest>, 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>();
#endregion
#region Role Services
services.AddScoped<IRolePort, RolePort>();
services.AddScoped<IComponentHandler<GetAllRolesRequest>, RoleHandler>();
services.AddScoped<IComponentHandler<GetRoleRequest>, RoleHandler>();
services.AddScoped<IComponentHandler<DeleteRoleRequest>, 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>();
#endregion
#region Permission Services
services.AddScoped<IPermissionPort, PermissionPort>();
services.AddScoped<IComponentHandler<GetAllPermissionsRequest>, PermissionHandler>();
services.AddScoped<IComponentHandler<GetPermissionRequest>, PermissionHandler>();
services.AddScoped<IComponentHandler<DeletePermissionRequest>, 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>();
#endregion
#region Module Services
services.AddScoped<IModulePort, ModulePort>();
services.AddScoped<IComponentHandler<GetAllModulesRequest>, ModuleHandler>();
services.AddScoped<IComponentHandler<GetModuleRequest>, ModuleHandler>();
services.AddScoped<IComponentHandler<DeleteModuleRequest>, 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>();
#endregion
#region Tenant Services
services.AddScoped<ITenantPort, TenantPort>();
services.AddScoped<IComponentHandler<GetAllTenantsRequest>, TenantHandler>();
services.AddScoped<IComponentHandler<GetTenantRequest>, TenantHandler>();
services.AddScoped<IComponentHandler<DeleteTenantRequest>, TenantHandler>();
services.AddValidatorsFromAssemblyContaining<CreateTenantValidator>();
services.AddScoped<IValidator<CreateTenantRequest>, CreateTenantValidator>();
services.AddScoped<IComponentHandler<CreateTenantRequest>, TenantHandler>();
services.AddValidatorsFromAssemblyContaining<UpdateTenantValidator>();
services.AddScoped<IValidator<UpdateTenantRequest>, UpdateTenantValidator>();
services.AddScoped<IComponentHandler<UpdateTenantRequest>, TenantHandler>();
services.AddValidatorsFromAssemblyContaining<ChangeTenantStatusValidator>();
services.AddScoped<IValidator<ChangeTenantStatusRequest>, ChangeTenantStatusValidator>();
services.AddScoped<IComponentHandler<ChangeTenantStatusRequest>, TenantHandler>();
#endregion
return services;
}
}
}