50 lines
2.0 KiB
C#
50 lines
2.0 KiB
C#
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<LimsdbContext>(options =>
|
||
{
|
||
var connectionString = configuration.GetConnectionString("DefaultConnection");
|
||
options.UseSqlServer(connectionString);
|
||
// Опционально: логирование запросов в Debug
|
||
// options.LogTo(Console.WriteLine, LogLevel.Information);
|
||
});
|
||
|
||
// Остальные сервисы
|
||
// Фасад
|
||
services.AddScoped<ILimsService, LimsService>();
|
||
|
||
// Сервисы
|
||
services.AddSingleton<IDialogService, DialogService>();
|
||
|
||
// ViewModel'и
|
||
services.AddTransient<XLIMS.PSV.ViewModels.MainViewModel>();
|
||
services.AddTransient<XLIMS.SP.ViewModels.MainViewModel>();
|
||
services.AddTransient<XLIMS.TPRZ.ViewModels.MainViewModel>();
|
||
services.AddTransient<XLIMS.DEV.ViewModels.MainViewModel>();
|
||
|
||
// Сохраняем конфигурацию (если понадобится в других местах)
|
||
services.AddSingleton<IConfiguration>(configuration);
|
||
return services;
|
||
}
|
||
}
|
||
}
|