Beispiel #1
0
        /// <summary>
        /// ets the retry manager from the specified configuration file and key.
        /// </summary>
        /// <param name="configurationFile">The specified configuration files.</param>
        /// <param name="configurationKey">The specified key in the configuration file.</param>
        /// <param name="getCustomRetryStrategy">The function to get custom retry strategy from options.</param>
        /// <returns>The retry manager.</returns>
        public static RetryManager GetRetryManager(
            string configurationFile = DefaultConfigurationFile,
            string configurationKey  = DefaultConfigurationKeyRetryManager,
            Func <IConfigurationSection, RetryStrategy>?getCustomRetryStrategy = null)
        {
            Argument.NotNullOrEmpty(configurationFile, nameof(configurationFile));
            Argument.NotNullOrEmpty(configurationKey, nameof(configurationKey));

            return(GetConfiguration(configurationFile).GetRetryManager(configurationKey, getCustomRetryStrategy));
        }
        /// <summary>
        /// Creates a retry manager from the system configuration.
        /// </summary>
        /// <returns></returns>
        public static RetryManager CreateDefault(
            string configurationFile = RetryConfiguration.DefaultConfigurationFile, string configurationKey = nameof(RetryManager), Func <IConfigurationSection, RetryStrategy>?getCustomRetryStrategy = null)
        {
            Argument.NotNullOrEmpty(configurationFile, nameof(configurationFile));
            Argument.NotNullOrEmpty(configurationKey, nameof(configurationKey));

            RetryManager manager = RetryConfiguration.GetRetryManager(configurationFile, configurationKey, getCustomRetryStrategy);

            RetryManager.SetDefault(manager);
            return(manager);
        }
        public static RetryPolicy GetRetryPolicy <T>(
            string retryStrategyName,
            string configurationFile = RetryConfiguration.DefaultConfigurationFile,
            string configurationKey  = nameof(RetryManager),
            Func <IConfigurationSection, RetryStrategy>?getCustomRetryStrategy = null) where T : ITransientErrorDetectionStrategy, new()
        {
            Argument.NotNullOrEmpty(retryStrategyName, nameof(retryStrategyName));
            Argument.NotNullOrEmpty(configurationFile, nameof(configurationFile));
            Argument.NotNullOrEmpty(configurationKey, nameof(configurationKey));

            return(GetOrCreateRetryManager(configurationFile, configurationKey, getCustomRetryStrategy).GetRetryPolicy <T>(retryStrategyName));
        }
        public static IDictionary <string, RetryStrategy> GetRetryStrategies(
            this IConfiguration configuration,
            string key = RetryConfiguration.DefaultConfigurationKeyRetryStrategy,
            Func <IConfigurationSection, RetryStrategy>?getCustomRetryStrategy = null)
        {
            Argument.NotNull(configuration, nameof(configuration));
            Argument.NotNullOrEmpty(key, nameof(key));

            IConfigurationSection section = configuration.GetSection(key);

            return(section.Exists()
                ? section.GetRetryStrategies(getCustomRetryStrategy)
                : throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, Resources.ConfigurationKeyNotFOund, key), nameof(key)));
        }
Beispiel #5
0
        /// <summary>Gets the configuration from the specified file.</summary>
        /// <param name="configurationFile">The specified configuration file.</param>
        /// <returns>The configuration.</returns>
        public static IConfiguration GetConfiguration(string configurationFile = DefaultConfigurationFile)
        {
            Argument.NotNullOrEmpty(configurationFile, nameof(configurationFile));

            IConfigurationBuilder builder = new ConfigurationBuilder();

            builder = Path.GetExtension(configurationFile).ToUpperInvariant() switch
            {
                ".INI" => builder.AddIniFile(configurationFile),
                ".JSON" => builder.AddJsonFile(configurationFile),
                ".XML" => builder.AddXmlFile(configurationFile),
                _ => throw new ArgumentOutOfRangeException(nameof(configurationFile), string.Format(CultureInfo.InvariantCulture, Resources.ConfigurationFileNotSupported, configurationFile))
            };

            return(builder.Build());
        }
    }
Beispiel #6
0
        public static IDbCommand CreateCommand(IDbConnection connection, string commandText)
        {
            Argument.NotNull(connection, nameof(connection));
            Argument.NotNullOrEmpty(commandText, nameof(commandText));

            IDbCommand command = CreateCommand(connection);

            try
            {
                command.CommandText = commandText;
                return(command);
            }
            catch
            {
                command.Dispose();
                throw;
            }
        }
 public static RetryPolicy GetDefaultSqlCommandRetryPolicy(
     string configurationFile = RetryConfiguration.DefaultConfigurationFile, string configurationKey = nameof(RetryManager), Func <IConfigurationSection, RetryStrategy>?getCustomRetryStrategy = null) =>
 GetOrCreateRetryManager(Argument.NotNullOrEmpty(configurationFile, nameof(configurationFile)), Argument.NotNullOrEmpty(configurationKey, nameof(configurationKey)), getCustomRetryStrategy)
 .GetDefaultSqlCommandRetryPolicy();