using System.Configuration; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System.IO; using XLIMS.DATA.Models; using XLIMS.CONTRACT; using XLIMS.SERVICES; namespace Microsoft.Extensions.DependencyInjection { public static class XLimsServicesDI { public static IServiceCollection AddXLimsServices(this IServiceCollection services) { var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .Build(); // Регистрируем DbContext с использованием строки из конфига services.AddDbContext(options => { var connectionString = configuration.GetConnectionString("DefaultConnection"); options.UseSqlServer(connectionString); // Опционально: логирование запросов в Debug // options.LogTo(Console.WriteLine, LogLevel.Information); }); // Остальные сервисы // Фасад services.AddScoped(); // Сервисы services.AddSingleton(); // ViewModel'и services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); // Сохраняем конфигурацию (если понадобится в других местах) services.AddSingleton(configuration); return services; } } }