예제 #1
0
        public static void EnsureDaContext(DbConnectionConfig SystemConConfig, params Assembly[] assemblies)
        {
            var dbtype = (DbType)SystemConConfig.DBType;

            var fuType = FlunentDBType.Sqlite;

            switch (dbtype)
            {
            case DbType.Sqlite:
                fuType = FlunentDBType.Sqlite;
                break;

            case DbType.SqlServer:
                fuType = FlunentDBType.MsSql;
                break;

            case DbType.MySql:
                fuType = FlunentDBType.MySql4;
                break;

            case DbType.PostgreSQL:
                fuType = FlunentDBType.Postgre;
                break;
            }
            MigratorFactory.CreateServices(fuType, SystemConConfig.Connectionstring, MigrationOperation.MigrateUp, 0, assemblies);
        }
예제 #2
0
        public static ApplicationDbContext GetContext()
        {
            var dbConnectionConfig = new DbConnectionConfig(DatabaseName);
            var dbContextFactory   = new DbContextFactory(dbConnectionConfig);

            return(dbContextFactory.Create(DatabaseName));
        }
예제 #3
0
        public DatabaseFactory(DbConnectionConfig dbConnectionConfig)
        {
            if (dbConnectionConfig == null)
            {
                throw new ArgumentNullException("No database connection details provided");
            }

            _nameOrConnectionString = dbConnectionConfig.ConnectionString;
        }
예제 #4
0
        public ApplicationContextSqlServer(IOptionsSnapshot <DbConnectionConfig> config)
        {
            _dbConnection = config.Value;
            ChangeTracker.LazyLoadingEnabled = false;

            if (Database.GetPendingMigrations().Any())
            {
                Database.Migrate();
            }
        }
예제 #5
0
 public DatabaseFactory(DbConnectionConfig dbConnectionConfig)
 {
     if (dbConnectionConfig == null)
     {
         throw new ArgumentNullException("No database connection details provided");
     }
     _providerName     = dbConnectionConfig.ProviderName;
     _provider         = DbProviderFactories.GetFactory(dbConnectionConfig.ProviderName);
     _connectionString = dbConnectionConfig.ConnectionString;
 }
예제 #6
0
        public RespondCompanyInfoViewModel GetCompanyInfoViewModel(RequestCompanyInfoViewModel request)
        {
            var respond = MemcacheHelper.Get(() =>
            {
                var filePath = BuildConnectionFilePath.BuildFilePath(request.CompanyID);
                var _respond = new RespondCompanyInfoViewModel();
                if (ExistsFileHelper.ExistsFile(filePath))
                {
                    var connectionConfig = ConfigHelper.GetConfig <DbConnectionConfig>(filePath);
                    _respond             = new RespondCompanyInfoViewModel
                    {
                        CompanyID      = request.CompanyID,
                        ConnectTimeout = connectionConfig.ConnectTimeout,
                        Database       = connectionConfig.Database,
                        Password       = connectionConfig.Password,
                        Server         = connectionConfig.Server,
                        UserID         = connectionConfig.UserID
                    };
                    return(_respond);
                }

                var parameter = new CompanyInfoParameter
                {
                    CompanyID = request.CompanyID
                };
                var dataModel = this.mCompanyInfoDataAccess.GetCompanyInfoDataModelByID(parameter);
                if (dataModel == null)
                {
                    return(_respond);
                }
                _respond = new RespondCompanyInfoViewModel
                {
                    CompanyID      = dataModel.comid,
                    ConnectTimeout = dataModel.timeout,
                    Database       = dataModel.dbase,
                    Password       = dataModel.pwd,
                    Server         = dataModel.dbserver,
                    UserID         = dataModel.uid
                };
                var _DbconnectionConfig = new DbConnectionConfig
                {
                    ConnectTimeout = dataModel.timeout,
                    Database       = dataModel.dbase,
                    Password       = dataModel.pwd,
                    Server         = dataModel.dbserver,
                    UserID         = dataModel.uid
                };
                ConfigHelper.Save(_DbconnectionConfig, filePath);
                return(_respond);
            }, string.Format(preCachedKey, "GetCompanyInfoViewModel"), false, request.CompanyID);

            return(respond);
        }
예제 #7
0
        private IDbConnection CreateOraConnection(DbConnectionConfig connectionConfig)
        {
            var builder = new OracleConnectionStringBuilder();

            builder.ConnectionString = connectionConfig.ConnectionString ?? "";
            if (!string.IsNullOrWhiteSpace(connectionConfig.UserName))
            {
                builder.UserID = connectionConfig.UserName;
            }
            if (!string.IsNullOrEmpty(connectionConfig.Password))
            {
                builder.Password = connectionConfig.Password;
            }
            return(new OracleConnection(builder.ConnectionString));
        }
        public RespondWebViewData <RespondSigninUserViewModel> FindSininUserDataModelByUserID(RequestOnlineSigninUserViewModel request)
        {
            var parameter = new OnlineSigninUserParameter
            {
                UserID = request.UserID
            };
            var dataModel = this.mSiginUserDataAccess.FindSininUserDataModelByUserID(parameter);

            if (dataModel == null)
            {
                return(new RespondWebViewData <RespondSigninUserViewModel>(WebViewErrorCode.NotExistUserInfo));
            }
            var companyInfoRequest = new RequestCompanyInfoViewModel
            {
                CompanyID = dataModel.comid
            };
            var companyInfo      = this.mCompanyInfoViewService.GetCompanyInfoViewModel(companyInfoRequest);
            var connectionConfig = new DbConnectionConfig
            {
                ConnectTimeout = companyInfo.ConnectTimeout,
                Database       = companyInfo.Database,
                Password       = companyInfo.Password,
                Server         = companyInfo.Server,
                UserID         = companyInfo.UserID
            };

            FormsAuthenticationTicketManage.RenewTicketIfOld(request.SGuid);
            var respond = new RespondWebViewData <RespondSigninUserViewModel>
            {
                rows = new RespondSigninUserViewModel
                {
                    CurrentUser = new SigninUser
                    {
                        CompanySerialNum = dataModel.comid,
                        UserID_g         = request.SGuid,
                        UserID           = dataModel.userid,
                        UserName         = dataModel.username,
                        AddressIP        = UserIPAddressTool.GetRealUserIPAddress(),
                        ConnectionConfig = connectionConfig,
                        IsManager        = dataModel.ismanager,
                        IsSystem         = dataModel.issystem
                    }
                }
            };

            HttpContext.Current.Items.Add(BeforeCompileConstDefined.HttpContext_Login_User, respond.rows.CurrentUser);
            return(respond);
        }
        public override void Add(IServiceCollection serviceCollection)
        {
            string databaseName = "r54";
            IDbConnectionConfig dbConnectionConfig = new DbConnectionConfig(databaseName);
            string connectionString = dbConnectionConfig.GetConnectionString();

            serviceCollection.AddTransient(provider => dbConnectionConfig);
            serviceCollection
            .AddEntityFrameworkNpgsql()
            .AddDbContext <ApplicationDbContext>(
                opt => opt.UseNpgsql(connectionString))
            .BuildServiceProvider();

            serviceCollection.AddTransient <IDbContextFactory, DbContextFactory>();
            serviceCollection.AddTransient(provider => new NpgsqlConnection(connectionString));
        }
예제 #10
0
        public IDbConnection Create(string name)
        {
            DbConnectionConfig dbConnectionConfig = null;

            if (configurationList?.TryGetValue(name, out dbConnectionConfig) ?? false)
            {
                switch ((dbConnectionConfig.Provider?.ToLower() ?? ""))
                {
                case var prv when prv == DbProviders.Oracle:
                    return(CreateOraConnection(dbConnectionConfig));

                default:
                    throw new InvalidOperationException($"Тип провайдера данных {dbConnectionConfig.Provider} не поддерживается");
                }
            }
            throw new InvalidOperationException($"Конфигурация для соединения {name} не найдена");
        }
        public InmetricsContext(IOptionsSnapshot <DbConnectionConfig> config)
        {
            dbConnection = config.Value;

            try
            {
                if (Database.GetPendingMigrations().Count() > 0)
                {
                    Database.Migrate();
                }
            }
            catch (Exception)
            {
            }

            ChangeTracker.LazyLoadingEnabled = false;
        }
예제 #12
0
    public void Connection_Not_Specified_Returns_Default_Connection()
    {
        // Arrange
        var name       = Rnd.Str;
        var connection = new DbConnectionConfig();
        var config     = new DbConfig {
            Default = name
        };

        config.Connections.Add(name, connection);

        // Act
        var result = config.GetConnection();

        // Assert
        Assert.Equal(connection, result);
    }
예제 #13
0
    public void Returns_Named_Connection()
    {
        // Arrange
        var name       = Rnd.Str;
        var connection = new DbConnectionConfig();
        var config     = new DbConfig {
            Default = Rnd.Str
        };

        config.Connections.Add(name, connection);

        // Act
        var result = config.GetConnection(name);

        // Assert
        Assert.Equal(connection, result);
    }
예제 #14
0
        public ApplicationContext(ICurrentUserService currentUserService,
                                  IOptionsSnapshot <DbConnectionConfig> config)
        {
            _currentUserService = currentUserService;
            dbConnection        = config.Value;
            ChangeTracker.LazyLoadingEnabled = false;

            try
            {
                if (Database.GetPendingMigrations().Count() > 0)
                {
                    Database.Migrate();
                }
            }
            catch (Exception)
            {
            }
        }
예제 #15
0
        public static void Initialize()
        {
            Console.WriteLine("Initialization");
            IDbConnectionConfig dbConnectionConfig = new DbConnectionConfig(DatabaseName);

            //Создать БД
            dbContextFactory = new DbContextFactory(dbConnectionConfig);
            DbContext        = dbContextFactory.Create(DatabaseName);
            //Ввести базовые данные
            var seeder = new DataSeeder();

            seeder.Seed(DbContext);
            //Прервать текущие сессии
            DbContext.Accounts.FromSql(new RawSqlString("ALTER DATABASE {0} SET postgres WITH ROLLBACK IMMEDIATE"), DatabaseName);
            //Очиста аккаунта
            TruncateAccountsTable();
            string connectionString = dbConnectionConfig.GetConnectionString();
            //Создать сервисы
            NpgsqlConnection               npgsqlConnection              = new NpgsqlConnection(connectionString);
            ISkinsDbReaderService          skinsDbReaderService          = new SkinsDbReaderService(DbContext);
            IDbWarshipsStatisticsReader    dbWarshipsStatisticsReader    = new DbWarshipsStatisticsReader(npgsqlConnection);
            IDbAccountWarshipReaderService dbAccountWarshipReaderService = new DbAccountWarshipReaderService(dbWarshipsStatisticsReader, skinsDbReaderService);
            AccountResourcesDbReader       accountResourcesDbReader      = new AccountResourcesDbReader(npgsqlConnection);

            AccountReaderService         = new AccountDbReaderService(dbAccountWarshipReaderService, accountResourcesDbReader);
            NotShownRewardsReaderService = new NotShownRewardsReaderService(DbContext);
            DefaultAccountFactoryService = new DefaultAccountFactoryService(DbContext);
            var accountRegistrationService            = new AccountRegistrationService(DefaultAccountFactoryService);
            var warshipsCharacteristicsService        = new WarshipsCharacteristicsService();
            AccountMapperService accountMapperService = new AccountMapperService(warshipsCharacteristicsService);

            AccountFacadeService = new AccountFacadeService(AccountReaderService, accountRegistrationService);
            var bundleVersionService = new BundleVersionService();

            LobbyModelFacadeService = new LobbyModelFacadeService(AccountFacadeService, NotShownRewardsReaderService,
                                                                  accountMapperService, bundleVersionService);

            UsernameValidatorService usernameValidatorService = new UsernameValidatorService();
            UsernameChangingService  usernameChangingService  = new UsernameChangingService(usernameValidatorService, DbContext);

            LobbyModelController            = new LobbyModelController(LobbyModelFacadeService, usernameChangingService);
            WarshipImprovementCostChecker   = new WarshipImprovementCostChecker();
            WarshipImprovementFacadeService = new WarshipImprovementFacadeService(AccountReaderService, DbContext, WarshipImprovementCostChecker);
        }
예제 #16
0
    public static (DbConnectionConfig config, ILog log, IDbClient client, IDbConnection connection, Db db) Get()
    {
        var connectionString = Rnd.Str;
        var config           = new DbConnectionConfig {
            ConnectionString = connectionString
        };

        var log = Substitute.For <ILog>();

        var connection = Substitute.For <IDbConnection>();

        var client = Substitute.For <IDbClient>();

        client.Connect(Arg.Any <string>()).Returns(connection);

        var db = Substitute.ForPartsOf <Db>(client, config, log);

        return(config, log, client, connection, db);
    }
    public void Returns_Default_Connection_When_Authentication_Name_Not_Set()
    {
        // Arrange
        var name       = Rnd.Str;
        var connection = new DbConnectionConfig();
        var config     = new DbConfig
        {
            Default     = name,
            Connections = new Dictionary <string, DbConnectionConfig> {
                { name, connection }
            }
        };

        // Act
        var result = config.GetAuthenticationConnection();

        // Assert
        Assert.Equal(connection, result);
    }
예제 #18
0
        private static void ConfigureArchiveDataLayer(IServiceCollection services,
                                                      IDictionary <string, DbConnectionConfig> dbConnectionList)
        {
            DbConnectionConfig dbConnectionConfig = null;

            if (dbConnectionList?.TryGetValue(QueriesConstants.ArchiveDbName, out dbConnectionConfig) ?? false)
            {
                switch ((dbConnectionConfig.Provider?.ToLower() ?? ""))
                {
                case var prv when prv == DbProviders.Oracle:
                {
                    ConfigureOraArchiveDataLayer(services, dbConnectionConfig);
                    break;
                }

                default:
                    throw new InvalidOperationException($"Тип провайдера данных {dbConnectionConfig.Provider} не поддерживается");
                }
            }
            throw new InvalidOperationException($"Конфигурация для соединения {QueriesConstants.ArchiveDbName} не найдена");
        }
        public void Decorate(DbConnectionConfig dbConfig, string dbProviderType)
        {
            dbConfig.Server   = Get(dbProviderType + _dbHostSuffix).DefaultIfNullOrEmpty(dbConfig.Server);
            dbConfig.Database = Get(dbProviderType + _dbNameSuffix).DefaultIfNullOrEmpty(dbConfig.Database);
            dbConfig.UserId   = Get(dbProviderType + _dbUserNameSuffix).DefaultIfNullOrEmpty(dbConfig.UserId);
            dbConfig.Port     = Get(dbProviderType + _dbPortSuffix).ToInt(-1).GreaterThanZero(dbConfig.Port);

            // If a specific password is set, use it period. Otherwise, take the configured value and append the API KEY var if we have one
            var envPwValue = Get(dbProviderType + _dbPasswordSuffix);

            if (StringExtensions.IsNotNullOrEmpty(envPwValue))
            {
                dbConfig.Password = envPwValue;

                return;
            }

            var apiKey = Get(_demoDdApiKey) ?? string.Empty;

            dbConfig.Password = dbConfig.Password + apiKey;
        }
예제 #20
0
        public IDbConnectionConfig ParseConnectionConfig(Dictionary <string, string> values)
        {
            var dbConnectionString = string.Empty;

            foreach (var key in values.Keys)
            {
                var value = values[key];

                dbConnectionString += $"{key}={value};";
            }

            var parsedConfig = new DbConnectionConfig
            {
                Name = _config.Name,

                Provider = _config.Provider,

                ConnectionString = dbConnectionString
            };

            return(parsedConfig);
        }
예제 #21
0
 public virtual byte[] GetFileBytes(DbConnectionConfig cpConfig, System system, ILogger logger)
 {
     throw new NotImplementedException();
 }
예제 #22
0
 public virtual long GetFileLength(DbConnectionConfig cpConfig, System system, ILogger logger)
 {
     return(-1);
 }
예제 #23
0
 public virtual string GetBatchStatus(DbConnectionConfig cpConfig, ILogger logger)
 {
     throw new NotImplementedException();
 }
예제 #24
0
 public virtual bool SaveMIMEType(DbConnectionConfig cpConfig, ILogger _logger)
 {
     throw new NotImplementedException();
 }
예제 #25
0
 public virtual bool SaveFileProcessStatus(DbConnectionConfig cpConfig, Guid batchGuid, Dictionary <string, string> fileProcessStatus, ILogger logger)
 {
     throw new NotImplementedException();
 }
예제 #26
0
 public virtual SecClass GetFileSecurityClassification(DbConnectionConfig cpConfig, System system, ILogger _logger)
 {
     throw new NotImplementedException();
 }
예제 #27
0
 public virtual string GetFilePermissions(DbConnectionConfig cpConfig, System system, ILogger logger)
 {
     throw new NotImplementedException();
 }
예제 #28
0
 protected override string GetConnectionString(DbConnectionConfig forConfig)
 => $"Server={forConfig.Server};Port={forConfig.Port.GreaterThanZero(3306)};Database={forConfig.Database};Uid={forConfig.UserId};Pwd={forConfig.Password};Connection Timeout={forConfig.ConnectTimeout.GreaterThanZero(11)};ConnectionLifeTime={forConfig.ConnectionLifetime.GreaterThanZero(7200)};SslMode=Preferred;";
예제 #29
0
 protected abstract string GetConnectionString(DbConnectionConfig forConfig);
예제 #30
0
        private static void ConfigureOraArchiveDataLayer(IServiceCollection services, DbConnectionConfig dbConnectionConfig)
        {
            IQueryObjectBuilderFactory oraBuilderFactory = new QueryObjectBuilderFactoryOra(dbConnectionConfig.SchemaOwner ?? "");

            services.AddSingleton(oraBuilderFactory);
        }