db configuration provider

This commit is contained in:
Mikhail Trubnikov
2023-09-19 14:34:55 +10:00
parent 943c18e707
commit 223c7b0434
15 changed files with 162 additions and 53 deletions

View File

@@ -1,7 +1,9 @@
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;
@@ -15,11 +17,16 @@ 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>();
@@ -36,5 +43,34 @@ namespace PARR.DAL
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);
}
}
}