コード例 #1
0
        /// <summary>
        /// 获取指定的数据库连接配置。
        /// </summary>
        /// <param name="dataSrcCode">数据库连接配置Code。</param>
        /// <returns>指定的数据库连接配置。</returns>
        public static GSPDbConfigData GetConfiguration(string dataSrcCode)
        {
            //DataValidator.CheckForEmptyString(dataSrcCode, "dataSrcCode");

            //if (DbConfigurations.ConnectionConfigurations.Contains(dataSrcCode))
            //    return DbConfigurations.ConnectionConfigurations.Get(dataSrcCode);
            //else
            //{
            //    //根据dataSrcCode找不到,尝试改变大小写再取
            //    foreach (var item in DbConfigurations.ConnectionConfigurations)
            //    {
            //        if (item.Code.Equals(dataSrcCode, StringComparison.InvariantCultureIgnoreCase))
            //        {
            //            return item;
            //        }
            //    }
            //}

            if (string.IsNullOrWhiteSpace(dataSrcCode))
            {
                throw new ArgumentException("数据库编号dataSrcCode");
            }

            return(DbConfigurations.GetConfigurationByCode(dataSrcCode));;
        }
 public IdentityAdapter(
     SignInManager <DALUserAccount> signInManager,
     UserManager <DALUserAccount> userManager,
     DbConfigurations dbConfigurations) : base(signInManager)
 {
     _signInManager    = signInManager;
     _userManager      = userManager;
     _dbConfigurations = dbConfigurations;
 }
コード例 #3
0
        public static IServiceCollection AddDatabaseLibrary(this IServiceCollection services)
        {
            DbConfigurations configurations = new DbConfigurations();

            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseSqlServer(configurations.SqlConnectionString,
                                                                              options => options.MigrationsAssembly("MTS.BL.API")));

            services.Configure <IdentityOptions>(options => options = configurations.IdentityOptions);

            services
            .AddIdentity <DALUserAccount, IdentityRole>()
            .AddEntityFrameworkStores <ApplicationDbContext>()
            .AddDefaultTokenProviders()
            .AddRoles <IdentityRole>();

            services
            .AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options =>
            {
                options.RequireHttpsMetadata      = false;
                options.SaveToken                 = true;
                options.Audience                  = "MTS-Audience";
                options.TokenValidationParameters = configurations.TokenValidationParameters;
            });

            services.Configure <AuthMessageSenderOptions>(configurations.AuthMessageSenderOptions);

            services.AddSingleton <IEmailSender, EmailSender>();

            services.AddSingleton <ISeedData, SeedData>();

            services.AddTransient <IAccountAdapter, AccountAdapter>();

            services.AddTransient <IIdentityAdapter, IdentityAdapter>();

            services.AddTransient <IEditPageAdapter, EditPagesAdapter>();

            services.AddSingleton <DbConfigurations>();

            return(services);
        }
コード例 #4
0
        public static ISessionFactory Create(DbConfigurations dbConfigurations)
        {
            NHibernateLogger.SetLoggersFactory(new SerilogLoggerFactory());

            if (dbConfigurations.UseNodaTime)
            {
                NpgsqlConnection.GlobalTypeMapper.UseNodaTime();
            }

            var dbConfigurations1 = dbConfigurations;
            var persistenceCfg    = PostgreSQLConfiguration.Standard
                                    .Provider <global::NHibernate.Connection.DriverConnectionProvider>()
                                    .Dialect <PostgreSQL83Dialect>()
                                    .Driver <NpgsqlDriverExtended>()
                                    .ConnectionString(dbConfigurations1.ConnectionString);

            if (dbConfigurations.UseNetTopologySuite)
            {
                NpgsqlConnection.GlobalTypeMapper.UseRawPostgis();
                persistenceCfg.Dialect <global::NHibernate.Spatial.Dialect.PostGis20Dialect>();
            }

            var cfg = Fluently.Configure()
                      .Database(persistenceCfg)
                      .Mappings(x =>
            {
                dbConfigurations1.EntityTypeAssemblies.ForEach(y => x.FluentMappings.AddFromAssembly(y));
                x.FluentMappings.Conventions.Setup(y => y.Add(AutoImport.Never()));
                if (dbConfigurations.UseNodaTime)
                {
                    x.FluentMappings.Conventions.Add <NodaTimeConventions>();
                }
                if (dbConfigurations.UseNetTopologySuite)
                {
                    x.FluentMappings.Conventions.Add <PostGisConventions>();
                }
                x.FluentMappings.Conventions.Add <GeneralConventions>();
                x.FluentMappings.Conventions.Add <ListConventions>();
                x.FluentMappings.Conventions.Add <RangeConventions>();
                x.FluentMappings.Conventions.Add <JsonConventions>();
            })
                      .ExposeConfiguration(x =>
            {
                if (!string.IsNullOrWhiteSpace(dbConfigurations.SchemaExportFilename))
                {
                    new SchemaExport(x).Execute(script =>
                                                File.AppendAllText(dbConfigurations.SchemaExportFilename, script),
                                                false, false);
                }
            })
                      .BuildConfiguration();

            if (dbConfigurations.UseNetTopologySuite)
            {
                cfg.AddAuxiliaryDatabaseObject(new SpatialAuxiliaryDatabaseObject(cfg));
                Metadata.AddMapping(cfg, MetadataClass.GeometryColumn);
                Metadata.AddMapping(cfg, MetadataClass.SpatialReferenceSystem);
            }

            return(cfg.BuildSessionFactory());
        }
コード例 #5
0
 /// <summary>
 /// 获取默认的数据库连接配置。
 /// </summary>
 /// <returns>指定的数据库连接配置。</returns>
 public static GSPDbConfigData GetDefaultConfiguration()
 {
     return(DbConfigurations.GetDefaultConfiguration());
 }