2025-02-05 09:16:28 +05:00
|
|
|
|
using DD.Persistence.Database.Entity;
|
|
|
|
|
using DD.Persistence.Database.Postgres.Repositories;
|
|
|
|
|
using DD.Persistence.Database.Postgres.RepositoriesCached;
|
|
|
|
|
using DD.Persistence.Models;
|
|
|
|
|
using DD.Persistence.Repositories;
|
|
|
|
|
using Mapster;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
2024-11-15 16:29:15 +05:00
|
|
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
2025-02-05 09:16:28 +05:00
|
|
|
|
using System.Reflection;
|
2024-11-15 16:29:15 +05:00
|
|
|
|
|
2024-12-16 15:38:46 +05:00
|
|
|
|
namespace DD.Persistence.Database.Model;
|
2024-11-15 16:29:15 +05:00
|
|
|
|
|
|
|
|
|
public static class DependencyInjection
|
|
|
|
|
{
|
|
|
|
|
public static IServiceCollection AddPersistenceDbContext(this IServiceCollection services, IConfiguration configuration)
|
|
|
|
|
{
|
|
|
|
|
string connectionStringName = "DefaultConnection";
|
|
|
|
|
|
2024-11-26 15:07:18 +05:00
|
|
|
|
services.AddDbContext<PersistencePostgresContext>(options =>
|
2024-12-03 17:05:46 +05:00
|
|
|
|
options.UseNpgsql(configuration.GetConnectionString(connectionStringName)));
|
2024-11-15 16:29:15 +05:00
|
|
|
|
|
2024-11-26 15:07:18 +05:00
|
|
|
|
services.AddScoped<DbContext>(provider => provider.GetRequiredService<PersistencePostgresContext>());
|
2024-11-15 16:29:15 +05:00
|
|
|
|
|
|
|
|
|
return services;
|
|
|
|
|
}
|
2025-02-05 09:16:28 +05:00
|
|
|
|
|
|
|
|
|
public static void MapsterSetup()
|
|
|
|
|
{
|
|
|
|
|
TypeAdapterConfig.GlobalSettings.Default.Config
|
|
|
|
|
.ForType<TechMessageDto, TechMessage>()
|
|
|
|
|
.Ignore(dest => dest.System, dest => dest.SystemId);
|
|
|
|
|
|
|
|
|
|
TypeAdapterConfig<ChangeLog, ChangeLogDto>.NewConfig()
|
|
|
|
|
.Map(dest => dest.Value, src => new ChangeLogValuesDto()
|
|
|
|
|
{
|
|
|
|
|
Value = src.Value,
|
|
|
|
|
Id = src.Id
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static IServiceCollection AddInfrastructure(this IServiceCollection services)
|
|
|
|
|
{
|
|
|
|
|
var typeAdapterConfig = TypeAdapterConfig.GlobalSettings;
|
|
|
|
|
typeAdapterConfig.RuleMap.Clear();
|
|
|
|
|
typeAdapterConfig.Scan(Assembly.GetExecutingAssembly());
|
|
|
|
|
|
|
|
|
|
MapsterSetup();
|
|
|
|
|
|
|
|
|
|
services.AddTransient<ISetpointRepository, SetpointRepository>();
|
|
|
|
|
services.AddTransient<IChangeLogRepository, ChangeLogRepository>();
|
|
|
|
|
services.AddTransient<ITimestampedValuesRepository, TimestampedValuesRepository>();
|
|
|
|
|
services.AddTransient<ITechMessagesRepository, TechMessagesRepository>();
|
|
|
|
|
services.AddTransient<IParameterRepository, ParameterRepository>();
|
|
|
|
|
services.AddTransient<IDataSourceSystemRepository, DataSourceSystemCachedRepository>();
|
|
|
|
|
services.AddTransient<IDataSchemeRepository, DataSchemeCachedRepository>();
|
|
|
|
|
|
|
|
|
|
return services;
|
|
|
|
|
}
|
2024-11-15 16:29:15 +05:00
|
|
|
|
}
|