mirror of
https://github.com/alex289/CleanArchitecture.git
synced 2025-06-30 10:33:43 +00:00
64 lines
2.8 KiB
C#
64 lines
2.8 KiB
C#
using CleanArchitecture.Domain.Commands.Tenants.CreateTenant;
|
|
using CleanArchitecture.Domain.Commands.Tenants.DeleteTenant;
|
|
using CleanArchitecture.Domain.Commands.Tenants.UpdateTenant;
|
|
using CleanArchitecture.Domain.Commands.Users.ChangePassword;
|
|
using CleanArchitecture.Domain.Commands.Users.CreateUser;
|
|
using CleanArchitecture.Domain.Commands.Users.DeleteUser;
|
|
using CleanArchitecture.Domain.Commands.Users.LoginUser;
|
|
using CleanArchitecture.Domain.Commands.Users.UpdateUser;
|
|
using CleanArchitecture.Domain.EventHandler;
|
|
using CleanArchitecture.Domain.EventHandler.Fanout;
|
|
using CleanArchitecture.Domain.Interfaces;
|
|
using CleanArchitecture.Shared.Events.Tenant;
|
|
using CleanArchitecture.Shared.Events.User;
|
|
using MediatR;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace CleanArchitecture.Domain.Extensions;
|
|
|
|
public static class ServiceCollectionExtension
|
|
{
|
|
public static IServiceCollection AddCommandHandlers(this IServiceCollection services)
|
|
{
|
|
// User
|
|
services.AddScoped<IRequestHandler<CreateUserCommand>, CreateUserCommandHandler>();
|
|
services.AddScoped<IRequestHandler<UpdateUserCommand>, UpdateUserCommandHandler>();
|
|
services.AddScoped<IRequestHandler<DeleteUserCommand>, DeleteUserCommandHandler>();
|
|
services.AddScoped<IRequestHandler<ChangePasswordCommand>, ChangePasswordCommandHandler>();
|
|
services.AddScoped<IRequestHandler<LoginUserCommand, string>, LoginUserCommandHandler>();
|
|
|
|
// Tenant
|
|
services.AddScoped<IRequestHandler<CreateTenantCommand>, CreateTenantCommandHandler>();
|
|
services.AddScoped<IRequestHandler<UpdateTenantCommand>, UpdateTenantCommandHandler>();
|
|
services.AddScoped<IRequestHandler<DeleteTenantCommand>, DeleteTenantCommandHandler>();
|
|
|
|
return services;
|
|
}
|
|
|
|
public static IServiceCollection AddNotificationHandlers(this IServiceCollection services)
|
|
{
|
|
// Fanout
|
|
services.AddScoped<IFanoutEventHandler, FanoutEventHandler>();
|
|
|
|
// User
|
|
services.AddScoped<INotificationHandler<UserCreatedEvent>, UserEventHandler>();
|
|
services.AddScoped<INotificationHandler<UserUpdatedEvent>, UserEventHandler>();
|
|
services.AddScoped<INotificationHandler<UserDeletedEvent>, UserEventHandler>();
|
|
services.AddScoped<INotificationHandler<PasswordChangedEvent>, UserEventHandler>();
|
|
|
|
// Tenant
|
|
services.AddScoped<INotificationHandler<TenantCreatedEvent>, TenantEventHandler>();
|
|
services.AddScoped<INotificationHandler<TenantUpdatedEvent>, TenantEventHandler>();
|
|
services.AddScoped<INotificationHandler<TenantDeletedEvent>, TenantEventHandler>();
|
|
|
|
return services;
|
|
}
|
|
|
|
public static IServiceCollection AddApiUser(this IServiceCollection services)
|
|
{
|
|
// User
|
|
services.AddScoped<IUser, ApiUser>();
|
|
|
|
return services;
|
|
}
|
|
} |