2026-04-13 21:36:01 -03:00
|
|
|
using FluentValidation;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
using SIGCM2.Application.Abstractions;
|
|
|
|
|
using SIGCM2.Application.Auth.Login;
|
2026-04-14 13:28:36 -03:00
|
|
|
using SIGCM2.Application.Auth.Logout;
|
|
|
|
|
using SIGCM2.Application.Auth.Refresh;
|
2026-04-15 17:46:23 -03:00
|
|
|
using SIGCM2.Application.Common;
|
2026-04-15 15:31:26 -03:00
|
|
|
using SIGCM2.Application.Permisos.Assign;
|
|
|
|
|
using SIGCM2.Application.Permisos.Dtos;
|
|
|
|
|
using SIGCM2.Application.Permisos.GetByRol;
|
|
|
|
|
using SIGCM2.Application.Permisos.List;
|
2026-04-15 12:50:24 -03:00
|
|
|
using SIGCM2.Application.Roles.Create;
|
|
|
|
|
using SIGCM2.Application.Roles.Deactivate;
|
|
|
|
|
using SIGCM2.Application.Roles.Dtos;
|
|
|
|
|
using SIGCM2.Application.Roles.Get;
|
|
|
|
|
using SIGCM2.Application.Roles.List;
|
|
|
|
|
using SIGCM2.Application.Roles.Update;
|
2026-04-15 17:46:23 -03:00
|
|
|
using SIGCM2.Application.Usuarios.ChangeMyPassword;
|
2026-04-15 10:47:48 -03:00
|
|
|
using SIGCM2.Application.Usuarios.Create;
|
2026-04-15 17:46:23 -03:00
|
|
|
using SIGCM2.Application.Usuarios.Deactivate;
|
|
|
|
|
using SIGCM2.Application.Usuarios.GetById;
|
|
|
|
|
using SIGCM2.Application.Usuarios.List;
|
|
|
|
|
using SIGCM2.Application.Usuarios.Reactivate;
|
|
|
|
|
using SIGCM2.Application.Usuarios.ResetPassword;
|
|
|
|
|
using SIGCM2.Application.Usuarios.Update;
|
2026-04-13 21:36:01 -03:00
|
|
|
|
|
|
|
|
namespace SIGCM2.Application;
|
|
|
|
|
|
|
|
|
|
public static class DependencyInjection
|
|
|
|
|
{
|
|
|
|
|
public static IServiceCollection AddApplication(this IServiceCollection services)
|
|
|
|
|
{
|
2026-04-14 13:28:36 -03:00
|
|
|
// Command handlers
|
2026-04-13 21:36:01 -03:00
|
|
|
services.AddScoped<ICommandHandler<LoginCommand, LoginResponseDto>, LoginCommandHandler>();
|
2026-04-14 13:28:36 -03:00
|
|
|
services.AddScoped<ICommandHandler<RefreshCommand, RefreshResponseDto>, RefreshCommandHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<LogoutCommand, LogoutResponseDto>, LogoutCommandHandler>();
|
2026-04-15 10:47:48 -03:00
|
|
|
services.AddScoped<ICommandHandler<CreateUsuarioCommand, UsuarioCreatedDto>, CreateUsuarioCommandHandler>();
|
2026-04-13 21:36:01 -03:00
|
|
|
|
2026-04-15 12:50:24 -03:00
|
|
|
// Roles (UDT-004)
|
|
|
|
|
services.AddScoped<ICommandHandler<ListRolesQuery, IReadOnlyList<RolDto>>, ListRolesQueryHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<GetRolByCodigoQuery, RolDto>, GetRolByCodigoQueryHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<CreateRolCommand, RolCreatedDto>, CreateRolCommandHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<UpdateRolCommand, RolDto>, UpdateRolCommandHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<DeactivateRolCommand, RolDto>, DeactivateRolCommandHandler>();
|
|
|
|
|
|
2026-04-15 15:31:26 -03:00
|
|
|
// Permisos (UDT-005)
|
|
|
|
|
services.AddScoped<ICommandHandler<ListPermisosQuery, IReadOnlyList<PermisoDto>>, ListPermisosQueryHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<GetRolPermisosQuery, IReadOnlyList<PermisoDto>>, GetRolPermisosQueryHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<AssignPermisosToRolCommand, IReadOnlyList<PermisoDto>>, AssignPermisosToRolCommandHandler>();
|
|
|
|
|
|
2026-04-15 17:46:23 -03:00
|
|
|
// Usuarios (UDT-008)
|
|
|
|
|
services.AddScoped<ICommandHandler<ListUsuariosQuery, PagedResult<UsuarioListItemDto>>, ListUsuariosQueryHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<GetUsuarioByIdQuery, UsuarioDetailDto>, GetUsuarioByIdQueryHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<UpdateUsuarioCommand, UsuarioDetailDto>, UpdateUsuarioCommandHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<DeactivateUsuarioCommand, UsuarioDetailDto>, DeactivateUsuarioCommandHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<ReactivateUsuarioCommand, UsuarioDetailDto>, ReactivateUsuarioCommandHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<ChangeMyPasswordCommand, Unit>, ChangeMyPasswordCommandHandler>();
|
|
|
|
|
services.AddScoped<ICommandHandler<ResetUsuarioPasswordCommand, ResetUsuarioPasswordResponse>, ResetUsuarioPasswordCommandHandler>();
|
|
|
|
|
|
2026-04-14 13:28:36 -03:00
|
|
|
// FluentValidation validators (scans entire Application assembly)
|
2026-04-13 21:36:01 -03:00
|
|
|
services.AddValidatorsFromAssemblyContaining<LoginCommandValidator>();
|
|
|
|
|
|
|
|
|
|
return services;
|
|
|
|
|
}
|
|
|
|
|
}
|