/// <summary>
        /// SQL Server specific extension method for Microsoft.EntityFrameworkCore.DbContextOptionsBuilder
        /// </summary>
        /// <param name="optionsBuilder">Database context options builder</param>
        /// <param name="services">Collection of service descriptors</param>
        public static void UseSqlServerWithLazyLoading(this DbContextOptionsBuilder optionsBuilder, IServiceCollection services)
        {
            CepresConfig            config = services.BuildServiceProvider().GetRequiredService <CepresConfig>();
            DbContextOptionsBuilder dbContextOptionsBuilder = optionsBuilder.UseLazyLoadingProxies();

            dbContextOptionsBuilder.UseSqlServer(config.DataConnectionString);
        }
Пример #2
0
 public static void AddDbContext(this IServiceCollection services)
 {
     services.AddDbContext <Context>(optionsBuilder =>
     {
         CepresConfig CepresConfig = services.BuildServiceProvider().GetRequiredService <CepresConfig>();
         DbContextOptionsBuilder dbContextOptionsBuilder = optionsBuilder.UseLazyLoadingProxies();
         dbContextOptionsBuilder.UseSqlServer(CepresConfig.DataConnectionString);
     });
 }
Пример #3
0
 public void Register(ContainerBuilder builder, CepresConfig config)
 {
     builder.Register(context => new Context(context.Resolve <DbContextOptions <Context> >())).As <IDbContext>().InstancePerLifetimeScope();
     if (config.UserEF)
     {
         builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope();
         builder.RegisterType <IPatientMetaDataRepository>().AsSelf().InstancePerRequest();
     }
     else
     {
         builder.RegisterGeneric(typeof(StaticSqlRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope();
         builder.RegisterType <PatientMetaDataRepository>().As <IPatientMetaDataRepository>().InstancePerLifetimeScope();
         builder.RegisterType <PatientRepository>().As <IPatientRepository>().InstancePerLifetimeScope();
         builder.RegisterType <RecordRepository>().As <IRecordRepository>().InstancePerLifetimeScope();
     }
     builder.RegisterType <PatientService>().As <IPatientService>().InstancePerLifetimeScope();
     builder.RegisterType <PatientMetaDataService>().As <IPatientMetaDataService>().InstancePerLifetimeScope();
     builder.RegisterType <RecordService>().As <IRecordService>().InstancePerLifetimeScope();
     builder.RegisterType <FileManagerProvider>().As <IFileManagerProvider>().InstancePerDependency();
     builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope();
 }
Пример #4
0
        public static IServiceProvider ConfigureApplicationServices(this IServiceCollection services, IConfiguration configuration, IWebHostEnvironment hostingEnvironment)
        {
            //add Config configuration parameters
            CepresConfig config = services.ConfigureStartupConfig <CepresConfig>(configuration.GetSection("Cepres"));

            //add accessor to HttpContext
            services.AddHttpContextAccessor();

            CommonHelper.DefaultFileProvider = new FileManagerProvider(hostingEnvironment);

            IMvcCoreBuilder mvcCoreBuilder = services.AddMvcCore();

            //create, initialize and configure the engine
            IEngine          engine          = EngineContext.Create();
            IServiceProvider serviceProvider = engine.ConfigureServices(services, configuration);

            SqlServerDataProvider.InitializeDatabase(config.DataConnectionString);


            return(serviceProvider);
        }