Files
Backend-Api/AccountManagement.Configuration/AccountManagementBootstrapper.cs
2025-01-20 17:31:03 +03:30

104 lines
4.9 KiB
C#

using AccountManagement.Application;
using AccountManagement.Application.Contracts.Account;
using AccountManagement.Application.Contracts.CameraAccount;
using AccountManagement.Application.Contracts.Media;
using AccountManagement.Application.Contracts.Position;
using AccountManagement.Application.Contracts.Role;
using AccountManagement.Application.Contracts.SubAccount;
using AccountManagement.Application.Contracts.SubAccountPermissionSubtitle;
using AccountManagement.Application.Contracts.Task;
using AccountManagement.Application.Contracts.TaskSubject;
using AccountManagement.Application.Contracts.Ticket;
using AccountManagement.Application.Contracts.TicketAccessAccount;
using AccountManagement.Domain.AccountAgg;
using AccountManagement.Domain.AccountLeftWorkAgg;
using AccountManagement.Domain.AssignAgg;
using AccountManagement.Domain.CameraAccountAgg;
using AccountManagement.Domain.MediaAgg;
using AccountManagement.Domain.PositionAgg;
using AccountManagement.Domain.RoleAgg;
using AccountManagement.Domain.SubAccountAgg;
using AccountManagement.Domain.SubAccountPermissionSubtitle1Agg;
using AccountManagement.Domain.SubAccountPermissionSubtitle2Agg;
using AccountManagement.Domain.SubAccountPermissionSubtitle3Agg;
using AccountManagement.Domain.SubAccountPermissionSubtitle4Agg;
using AccountManagement.Domain.SubAccountRoleAgg;
using AccountManagement.Domain.TaskAgg;
using AccountManagement.Domain.TaskMessageAgg;
using AccountManagement.Domain.TaskSubjectAgg;
using AccountManagement.Domain.TicketAccessAccountAgg;
using AccountManagement.Domain.TicketAgg;
using AccountMangement.Infrastructure.EFCore;
using AccountMangement.Infrastructure.EFCore.Repository;
using Company.Domain.WorkshopAccountAgg;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using TaskManager.Application;
using TaskManager.Infrastructure.EFCore.Repository;
namespace AccountManagement.Configuration
{
public class AccountManagementBootstrapper
{
public static void Configure(IServiceCollection services, string connectionString)
{
services.AddTransient<IAccountApplication, AccountApplication>();
services.AddTransient<IAccountRepository, AccountRepository>();
services.AddTransient<IRoleApplication, RoleApplication>();
services.AddTransient<IRoleRepository, RoleRepository>();
services.AddTransient<ICameraAccountApplication, CameraAccountApplication>();
services.AddTransient<ICameraAccountRepository, CameraAccountRepository>();
services.AddTransient<IAccountLeftworkRepository, AccountLeftworkRepository>();
//services.AddTransient<IWorkshopAccountRepository, IWorkshopAccountRepository>();
#region Mahan
services.AddTransient<IPositionRepository, PositionRepository>();
services.AddTransient<IPositionApplication, PositionApplication>();
services.AddScoped<ITaskRepository, TaskRepository>();
services.AddTransient<ITaskApplication, TaskApplication>();
services.AddTransient<ITaskSubjectRepository, TaskSubjectRepository>();
services.AddTransient<ITaskSubjectApplication, TaskSubjectApplication>();
services.AddTransient<IAssignRepository, AssignRepository>();
services.AddTransient<IMediaRepository, MediaRepository>();
services.AddTransient<IMediaApplication, MediaApplication>();
services.AddTransient<ITicketRepository, TicketRepository>();
services.AddTransient<ITicketApplication, TicketApplication>();
services.AddTransient<ITaskMessageRepository, TaskMessageRepository>();
services.AddTransient<ITicketAccessAccountRepository, TicketAccessAccountRepository>();
services.AddTransient<ITicketAccessAccountApplication, TicketAccessAccountApplication>();
#endregion
#region Pooya
services.AddTransient<ISubAccountRepository, SubAccountRepository>();
services.AddTransient<ISubAccountApplication, SubAccountApplication>();
services.AddTransient<ISubAccountRoleRepository, SubAccountRoleRepository>();
services.AddTransient<ISubAccountPermissionSubtitle1Repository, SubAccountPermissionSubtitle1Repository>();
services.AddTransient<ISubAccountPermissionSubtitle2Repository, SubAccountPermissionSubtitle2Repository>();
services.AddTransient<ISubAccountPermissionSubtitle3Repository, SubAccountPermissionSubtitle3Repository>();
services.AddTransient<ISubAccountPermissionSubtitle4Repository, SubAccountPermissionSubtitle4Repository>();
services.AddTransient<ISubAccountPermissionSubtitleApplication, SubAccountPermissionSubtitleApplication>();
#endregion
services.AddScoped<IWorker, Worker>();
services.AddDbContext<AccountContext>(x => x.UseSqlServer(connectionString));
}
}
}