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);