83 lines
3.6 KiB
C#
83 lines
3.6 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using PARR.DAL.Configurations.DbSettings;
|
|
using PARR.DAL.Context;
|
|
using PARR.DAL.Contracts;
|
|
using PARR.DAL.Services;
|
|
using PARR.DAL.Services.Implementation;
|
|
using PARR.DAL.Services.Implementations;
|
|
using PARR.DAL.Services.Implementations.AIHIT;
|
|
using PARR.DAL.Services.Implementations.V1;
|
|
using PARR.DAL.Services.Interfaces;
|
|
using PARR.DAL.Services.Interfaces.AIHIT;
|
|
using PARR.DAL.Services.Interfaces.V1;
|
|
|
|
namespace PARR.DAL
|
|
{
|
|
public static class ParrDalInstaller
|
|
{
|
|
/// <summary>
|
|
/// Устанавливает Dal сервисы (1)
|
|
/// </summary>
|
|
/// <param name="services"></param>
|
|
/// <param name="configuration"></param>
|
|
public static void InstallDalServices(this IServiceCollection services, IConfiguration configuration)
|
|
{
|
|
services.AddDbContext<DataContext>(opt =>
|
|
opt.UseNpgsql(configuration.GetConnectionString("DefaultConnection"))
|
|
);
|
|
|
|
services.AddTransient<V1_IHostService, V1_HostService>();
|
|
services.AddTransient<IHostService, HostService>();
|
|
services.AddTransient<IApplicationService, ApplicationService>();
|
|
services.AddTransient<IApplicationTypeService, ApplicationTypeService>();
|
|
services.AddTransient<IApplicationInHostService, ApplicationInHostService>();
|
|
services.AddTransient<IApplicationsInWorkService, ApplicationsInWorkService>();
|
|
services.AddTransient<IWorkService, WorkService>();
|
|
services.AddTransient<IApplicationService, ApplicationService>();
|
|
services.AddTransient<IProcessService, ProcessService>();
|
|
services.AddTransient<ISubprocessService, SubprocessService>();
|
|
services.AddTransient<ITnkService, TnkService>();
|
|
services.AddTransient<V1_IApplicationService, V1_ApplicationService>();
|
|
services.AddTransient<V1_IApplicationTypeService, V1_ApplicationTypeService>();
|
|
services.AddTransient<V1_IApplicationInHostService, V1_ApplicationInHostService>();
|
|
services.AddTransient<V1_IJobService, V1_JobService>();
|
|
services.AddTransient<V1_IJobJournalService, V1_JobJournalService>();
|
|
services.AddTransient<IRawDataEKService, RawDataEKService>();
|
|
services.AddTransient<ISettingService, SettingService>();
|
|
services.AddTransient<ITemplateService, TemplateService>();
|
|
services.AddTransient<IStatusTemplateService, StatusTemplateService>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Добавляет конфигурацию Dal (2)
|
|
/// </summary>
|
|
/// <param name="builder"></param>
|
|
/// <param name="services"></param>
|
|
/// <returns></returns>
|
|
public static IConfigurationBuilder AddDalConfigurations(this IConfigurationBuilder builder, IServiceCollection services)
|
|
{
|
|
builder.Add(new DBConfigurationSource(services));
|
|
|
|
return builder;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Добавляет конфигурацию в сервисы (3)
|
|
/// </summary>
|
|
/// <param name="services"></param>
|
|
/// <param name="configuration"></param>
|
|
public static void AddDallSettings(this IServiceCollection services, IConfiguration configuration)
|
|
{
|
|
//SettingsFromDb configuration
|
|
var settingsFromDb = new SettingsFromDb();
|
|
configuration.GetSection(nameof(SettingsFromDb)).Bind(settingsFromDb);
|
|
services.AddSingleton(settingsFromDb);
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|