using Azaion.Common.Database; using Azaion.Common.DTO; using Azaion.Common.DTO.Config; using Azaion.Common.Services; using Azaion.Common.Services.Inference; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; namespace Azaion.Common.Infrastructure; public static class ServiceCollectionExtensions { public static IServiceCollection AddAzaionInfrastructure(this IServiceCollection services) { services.AddSingleton(); services.AddSingleton(); services.AddSingleton(sp => new AnnotationPathResolver(sp.GetRequiredService>().Value)); services.AddSingleton(); services.AddSingleton(); return services; } public static IServiceCollection AddAzaionConfiguration(this IServiceCollection services) { services.AddSingleton(sp => new FileConfigurationStore(Constants.CONFIG_PATH, sp.GetRequiredService())); services.AddSingleton(); return services; } public static IServiceCollection AddAzaionServices(this IServiceCollection services) { services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); return services; } }