using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; using MTWorkHR.Infrastructure.EmailService; using MTWorkHR.Infrastructure.Logging; using MTWorkHR.Core.Global; using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; using MTWorkHR.Core.IRepositories.Base; using MTWorkHR.Core.IRepositories; using MTWorkHR.Core.UnitOfWork; using MTWorkHR.Infrastructure.Data; using MTWorkHR.Infrastructure.Repositories; using MTWorkHR.Infrastructure.UnitOfWorks; using MTWorkHR.Core.Email; namespace MTWorkHR.Infrastructure { public static class InfrastructureServiceRegistration { public static IServiceCollection AddInfrastructureServices (this IServiceCollection services, AppSettingsConfiguration configuration){ services.AddDbContext<HRDataContext>(options => { options.UseSqlServer(configuration.ConnectionStrings.MTWorkHRConnectionString); }); //services.AddScoped(typeof(IRepository<>), typeof(Repository<>)); //services.AddScoped(typeof(IRepositoryLog<>), typeof(RepositoryLog<>)); //services.AddScoped(typeof(ICompanyRepository), typeof(CompanyRepository)); //services.AddScoped(typeof(IProjectRepository), typeof(ProjectRepository)); //services.AddScoped(typeof(ITaskStatusRepository), typeof(TaskStatusRepository)); //services.AddScoped(typeof(IUserTaskRepository), typeof(UserTaskRepository)); //services.AddScoped(typeof(IUserTaskHistoryRepository), typeof(UserTaskHistoryRepository)); //services.AddScoped(typeof(IPermissionRepository), typeof(PermissionRepository)); //services.AddScoped(typeof(IRolePermissionRepository<RolePermission>), typeof(RolePermissionRepository)); //services.AddScoped(typeof(IUserRoleRepository<IdentityUserRole<string>>), typeof(UserRoleRepository)); //services.AddScoped<IUnitOfWork, UnitOfWork>(); //services.AddScoped<IUnitOfWorkLog, UnitOfWorkLog>(); //services.AddTransient<IMailSender, MailSender>(); //services.AddScoped<ApplicationUserManager>(); //services.AddScoped<GlobalInfo>(); //services.AddScoped<IEmployeeRepository, EmployeeRepository>(); //services.AddScoped(typeof(IAppLogger<>), typeof(LoggerAdapter<>)); return services; } } }