示例#1
0
        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);
        }
示例#2
0
        public ConfigurationService(IConfiguration configuration)
        {
            _configDirectory = configuration[ConfigurationDirectoryKey] ?? Environment.CurrentDirectory;
            var configFile = Path.Join(_configDirectory, ConfigurationFileName);

            _config = LoadConfig(configFile, configuration);
        }
示例#3
0
        private void UpdateConfigWithCliOptions(ref YourYearConfig yourYearConfig, IConfiguration configuration)
        {
            string cookieDomain;

            if ((cookieDomain = configuration[CookieDomainConfigurationKey]) != null)
            {
                yourYearConfig.CookieDomain = cookieDomain;
            }
        }