1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
using System;
using System.Collections.Generic;
using Microsoft.Extensions.Configuration;
namespace Timeline.Configs
{
public static class ApplicationConfiguration
{
public const string WorkDirectoryKey = "WorkDirectory";
public const string DefaultWorkDirectoryName = "timeline";
public const string DatabaseFileName = "timeline.db";
public const string DatabaseBackupDirectoryName = "backup";
public const string FrontEndKey = "FrontEnd";
public const string DisableAutoBackupKey = "DisableAutoBackup";
public static bool CheckIsValidBoolString(string? value, string configPath, Boolean defaultValue)
{
if (value is null)
{
return defaultValue;
}
var true_strings = new List<string> { "true", "1", "y", "yes", "on" };
var false_strings = new List<string> { "false", "0", "n", "no", "off" };
if (true_strings.Contains(value.ToLowerInvariant()))
{
return true;
}
else if (false_strings.Contains(value.ToLowerInvariant()))
{
return false;
}
else
{
throw new Exception($"Invalid boolean value {value} in config {configPath}.");
}
}
public static bool GetBoolConfig(IConfiguration configuration, string configPath, bool defaultValue)
{
var value = configuration.GetValue<string?>(configPath);
return CheckIsValidBoolString(value, configPath, defaultValue);
}
}
}
|