Exemple #1
0
        public TimeSpan GetTimeSpan(string key, TimeSpanSerializedUnit unit, TimeSpan defaultValue)
        {
            string valueAsString = GetSetting(key)
                                   .Replace(",", CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator)
                                   .Replace(".", CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator);

            if (string.IsNullOrEmpty(valueAsString))
            {
                return(defaultValue);
            }

            double numericalValue = double.Parse(valueAsString, NumberStyles.Number, CultureInfo.InvariantCulture);

            switch (unit)
            {
            case TimeSpanSerializedUnit.Milliseconds:
                return(TimeSpan.FromMilliseconds(numericalValue));

            case TimeSpanSerializedUnit.Seconds:
                return(TimeSpan.FromSeconds(numericalValue));

            case TimeSpanSerializedUnit.Minutes:
                return(TimeSpan.FromMinutes(numericalValue));

            case TimeSpanSerializedUnit.Hours:
                return(TimeSpan.FromHours(numericalValue));

            case TimeSpanSerializedUnit.Days:
                return(TimeSpan.FromDays(numericalValue));

            default:
                throw new ArgumentOutOfRangeException(nameof(unit), unit, null);
            }
        }
 public static TimeSpan GetTimeSpan(string key, TimeSpanSerializedUnit unit, TimeSpan defaultValue) => _instance.GetTimeSpan(key, unit, defaultValue);