internal static string BuildConnectionString(IDbConnectionStringBuilderConfig dbConfig, string datasource, bool isAdminMode)
        {
            var adminUser     = dbConfig.AdminUser;
            var adminPassword = dbConfig.AdminPassword;

            if (isAdminMode && dbConfig is IDbConfig dbConfigFull)
            {
                if (dbConfigFull.IsAdminValuesValid == false)
                {
                    adminUser     = "";
                    adminPassword = "";
                }
                ;
            }
            var poolingStr = $"{dbConfig.Pooling}";

            if (dbConfig.Pooling && dbConfig.PoolingKeyValues?.Any() == true)
            {
                // ReSharper disable once LoopCanBeConvertedToQuery
                foreach (var keyValue in dbConfig.PoolingKeyValues)
                {
                    poolingStr += $";{keyValue.Key} = {keyValue.Value}";
                }
            }

            var connectionString = string.Format(DefaultConnectionStringTemplate,
                                                 (isAdminMode ? adminUser : dbConfig.User)?.ToUpper(),
                                                 isAdminMode ? adminPassword : dbConfig.Password,
                                                 datasource,
                                                 poolingStr,
                                                 GetConnectionTimeout(dbConfig));

            return(connectionString);
        }
        private static string BuildConnectionString(IDbConnectionStringBuilderConfig dbConfig, bool isAdminMode)
        {
            var adminUser     = dbConfig.AdminUser;
            var adminPassword = dbConfig.AdminPassword;

            if (isAdminMode && dbConfig is IDbConfig dbConfigForValidation)
            {
                if (dbConfigForValidation.IsAdminValuesValid == false)
                {
                    adminUser     = "";
                    adminPassword = "";
                }
                ;
            }

            var connectionString = string.Format(DefaultConnectionStringTemplate,
                                                 (isAdminMode ? adminUser : dbConfig?.User)?.ToLower(),
                                                 isAdminMode ? adminPassword : dbConfig?.Password,
                                                 dbConfig?.Hostname,
                                                 dbConfig?.Port,
                                                 dbConfig?.DatabaseName.ToLower(),
                                                 dbConfig?.Pooling,
                                                 GetConnectionTimeout(dbConfig));

            return(connectionString);
        }
        internal static string GetDataSource(IDbConnectionStringBuilderConfig dbConfig)
        {
            var dataSource = dbConfig.Datasource;

            return(!string.IsNullOrEmpty(dataSource)
                ? dataSource
                : GetDefaultDataSource(dbConfig.Hostname, dbConfig.Port, dbConfig.GetOracleServiceName()?.ToLower()));
        }
Exemplo n.º 4
0
        /// <summary>
        /// <para>Get the oracle service name from config</para>
        /// 1. Get config "database:dataSource".<br/>
        /// 2. If config "database:dataSource" is NULL, get <see cref="IDbConfigDatabaseTargets.DatabaseName"><paramref name="dbConfig"/>.DatabaseName</see><br/><br/>
        /// ------ See <see cref="IDbConfigDatabaseTargets.DatabaseName"/> ---------------------------<br/>
        /// <br/>
        /// Get <inheritdoc cref="IDbConfigDatabaseTargets.DatabaseName" path="/summary/remarks[1]"/>
        /// </summary>
        /// <param name="dbConfig"></param>
        /// <returns></returns>
        public static string GetOracleServiceName(this IDbConnectionStringBuilderConfig dbConfig)
        {
            if (dbConfig is IDbConfig dbConfigFull)
            {
                return(dbConfigFull.GetConfigValue(dbConfigFull.GetConfigKey("database", "dataSource")) ?? dbConfig.DatabaseName);
            }

            return(dbConfig.DatabaseName);
        }
        internal static string BuildConnectionString(IDbConnectionStringBuilderConfig dbConfig, string datasource, bool isAdminMode)
        {
            var connstr = string.Format(DefaultConnectionStringTemplate,
                                        (isAdminMode ? dbConfig.AdminUser : dbConfig.User).ToUpper(),
                                        isAdminMode ? dbConfig.AdminPassword : dbConfig.Password,
                                        datasource,
                                        dbConfig.Pooling,
                                        GetConnectionTimeout(dbConfig));

            return(connstr);
        }
        private static string BuildConnectionString(IDbConnectionStringBuilderConfig dbConfig, bool isAdminMode)
        {
            var connstr = string.Format(DefaultConnectionStringTemplate,
                                        (isAdminMode ? dbConfig.AdminUser : dbConfig.User).ToLower(),
                                        isAdminMode ? dbConfig.AdminPassword : dbConfig.Password,
                                        dbConfig.Hostname,
                                        dbConfig.Port,
                                        dbConfig.DatabaseName.ToLower(),
                                        dbConfig.Pooling,
                                        GetConnectionTimeout(dbConfig));

            return(connstr);
        }
 private static string GetConnectionTimeout(IDbConnectionStringBuilderConfig dbConfig)
 {
     return(string.IsNullOrEmpty(dbConfig.ConnectionTimeoutInSecs)
         ? string.Empty
         : string.Format(ConnectionTimeoutTemplate, dbConfig.ConnectionTimeoutInSecs));
 }
 internal static string GetDataSourceTemplate(IDbConnectionStringBuilderConfig dbConfig)
 {
     return(!string.IsNullOrEmpty(dbConfig.Datasource)
         ? dbConfig.Datasource
         : GetDefaultDataSource(dbConfig.Hostname, dbConfig.Port, dbConfig.DatabaseName?.ToLower()));
 }
 public string BuildAdminConnectionString(IDbConnectionStringBuilderConfig dbConfig) => BuildConnectionString(dbConfig, GetDataSourceTemplate(dbConfig), true);
 public string BuildAdminConnectionString(IDbConnectionStringBuilderConfig dbConfig)
 {
     return(BuildConnectionString(dbConfig, true));
 }
 public string BuildConnectionString(IDbConnectionStringBuilderConfig dbConfig)
 {
     return(BuildConnectionString(dbConfig, false));
 }
 public string BuildConnectionString(IDbConnectionStringBuilderConfig dbConfig) => BuildConnectionString(dbConfig, GetDataSource(dbConfig), false);