Example #1
0
 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>();
 }
Example #2
0
        /// <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);
        }