コード例 #1
0
 /// <summary>
 /// Create the DependencyInjection implementing class of <see cref="IDbConfig"/> (strong type Ms<see cref="DbConfig"/>)
 /// </summary>
 /// <param name="configuration"></param>
 /// <param name="defaultDbConfigValues"></param>
 /// <param name="dbConfigCredentials"></param>
 /// <param name="prioritizedConfigValues"></param>
 /// <param name="prioritizedConfigKeys"></param>
 /// <param name="configurationDelimiter"></param>
 /// <returns></returns>
 public static DbConfig CreateDbConfig(this IConfiguration configuration,
                                       DefaultDbConfigValues defaultDbConfigValues                = null,
                                       DbConfigCredentials dbConfigCredentials                    = null,
                                       IPrioritizedConfigValues prioritizedConfigValues           = null,
                                       IEnumerable <IPrioritizedConfigKeys> prioritizedConfigKeys = null,
                                       IConfigurationDelimiter configurationDelimiter             = null)
 {
     return(new MsDbConfig(configuration, null, defaultDbConfigValues, dbConfigCredentials, prioritizedConfigValues, prioritizedConfigKeys, configurationDelimiter));
 }
コード例 #2
0
ファイル: MsDbConfig.cs プロジェクト: DIPSAS/FluentDbTools
        /// <inheritdoc />
        public MsDbConfig(
            IConfiguration configuration, IConfigurationChangedHandler configurationChangedHandler = null,
            DefaultDbConfigValues defaultDbConfigValues                = null,
            DbConfigCredentials dbConfigCredentials                    = null,
            IPrioritizedConfigValues prioritizedConfigValues           = null,
            IEnumerable <IPrioritizedConfigKeys> prioritizedConfigKeys = null,
            IConfigurationDelimiter delimiter = null) :
            base(defaultDbConfigValues ?? new MsDefaultDbConfigValues(configuration, prioritizedConfigValues, prioritizedConfigKeys), dbConfigCredentials)
        {
            Configuration = configuration;
            configurationChangedHandler?.RegisterConfigurationChangedCallback(OnConfigurationChanged);

            ConfigurationDelimiter = delimiter?.Delimiter ?? ":";
        }
コード例 #3
0
        /// <summary>
        /// <para>Initialize the class by the array for <see cref="IPrioritizedConfigKeys"/>. The Array will be sorted by <see cref="IPrioritizedConfigKeys.Order"/> prop</para>
        /// <para>All <see cref="IPrioritizedConfigValues"/>-methods is implemented to get keys from <see cref="PrioritizedConfigKeys"/> array, and return first value different from null-or-empty</para>
        /// </summary>
        /// <param name="getConfigValueFunc"></param>
        /// <param name="prioritizedConfigKeys"></param>
        /// <param name="configurationDelimiter"></param>
        public PrioritizedConfigValues(
            Func <string[], string> getConfigValueFunc = null,
            IEnumerable <IPrioritizedConfigKeys> prioritizedConfigKeys = null,
            IConfigurationDelimiter configurationDelimiter             = null)
        {
            PrioritizedConfigKeys = ToPrioritizedConfigKeysArray();
            GetConfigValueFunc    = getConfigValueFunc;

            Delimiter = configurationDelimiter?.Delimiter ?? ":";

            IPrioritizedConfigKeys[] ToPrioritizedConfigKeysArray()
            {
                var array = prioritizedConfigKeys as IPrioritizedConfigKeys[] ?? prioritizedConfigKeys?.ToArray() ?? GetDefaultPrioritizedConfigKeys();

                return(array.Any() == false?GetDefaultPrioritizedConfigKeys() : array.Distinct().OrderBy(x => x.Order).ToArray());
            }
        }