private YourYearConfig LoadConfig(string configFile, IConfiguration configuration) { var serialiserConfig = new JsonSerializerOptions { AllowTrailingCommas = true, Converters = { new JsonStringEnumConverter() }, PropertyNamingPolicy = JsonNamingPolicy.CamelCase, PropertyNameCaseInsensitive = true, WriteIndented = true }; YourYearConfig yourYearConfig; if (File.Exists(configFile)) { yourYearConfig = JsonSerializer.Deserialize <YourYearConfig>(File.ReadAllText(configFile), serialiserConfig); UpdateConfigWithCliOptions(ref yourYearConfig, configuration); } else { yourYearConfig = new YourYearConfig(); UpdateConfigWithCliOptions(ref yourYearConfig, configuration); File.WriteAllText(configFile, JsonSerializer.Serialize <YourYearConfig>(yourYearConfig, serialiserConfig)); } return(yourYearConfig); }
public ConfigurationService(IConfiguration configuration) { _configDirectory = configuration[ConfigurationDirectoryKey] ?? Environment.CurrentDirectory; var configFile = Path.Join(_configDirectory, ConfigurationFileName); _config = LoadConfig(configFile, configuration); }
private void UpdateConfigWithCliOptions(ref YourYearConfig yourYearConfig, IConfiguration configuration) { string cookieDomain; if ((cookieDomain = configuration[CookieDomainConfigurationKey]) != null) { yourYearConfig.CookieDomain = cookieDomain; } }