public static void AddBLL <TContext>(this IServiceCollection services, IConfiguration configuration, IGetEnvironment getEnvironment) where TContext : DbContext, IApplicationContext { services.AddDbContext <TContext>(options => options.UseSqlServer(getEnvironment.GetSqlConnectionString)); services.AddTransient <IApplicationContext, TContext>(); services.AddTransient <IUnitOfWork, UnitOfWork>(); }
/// <summary> /// Добавляет зависимости по TOA Onion Architecture /// </summary> /// <typeparam name="TContext">Контекст БД</typeparam> /// <param name="services"></param> /// <param name="configuration"></param> public static void AddOnionArchitecture <TContext>(this IServiceCollection services, IConfiguration configuration, IGetEnvironment environment) where TContext : DbContext, IApplicationContext { services.AddBLL <TContext>(configuration, environment); services.AddTransient <IRepository <User, AddParamOfCRUDOperation <User> >, RepositoryAddItem <User, AddParamOfCRUDOperation <User> > >(); services.AddTransient <IRepository <User, EditParamOfCRUDOperation <User> >, RepositoryEditItem <User, EditParamOfCRUDOperation <User> > >(); services.AddTransient <IRepository <User, DeleteParamOfCRUDOperation <User> >, RepositoryDeleteItem <User, DeleteParamOfCRUDOperation <User> > >(); services.AddTransient <IHandlerCRUD <User, AddParamOfCRUDOperation <User> >, HandlerCRUD <User, AddParamOfCRUDOperation <User> > >(); services.AddTransient <IFetchData <User>, FetchDomainData <User> >(); services.AddTransient <IAccountService, AccountService>(); services .AddControllers() .AddJsonOptions(options => { options.JsonSerializerOptions.IgnoreNullValues = true; }) .AddNewtonsoftJson(o => { o.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; o.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; o.SerializerSettings.Converters.Add(new StringEnumConverter()); o.SerializerSettings.Converters.Add(new JsonInt32Converter()); }); // установка конфигурации подключения services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options => //CookieAuthenticationOptions { options.LoginPath = new Microsoft.AspNetCore.Http.PathString("/Login"); }); services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.AddSingleton <IUserContext, UserContext>(); }
public LogInMongoDBBLL(IGetEnvironment configuration) { string connectionString = configuration.GetMongoDBConnectionString; _mongoDBContext = new MongoDBContext <LogItem>(connectionString); }