public OptionManager(string path) { _defaultOptions = new EtlOptions.EtlOptions(); string options; try { using (var xmlReader = new StreamReader($"{path}/config.xml")) { options = xmlReader.ReadToEnd(); } _xml = new EtlXmlOptions(options); _xmlConfigured = true; Report = _xml.Report; Report += "Xml options loaded successfully. "; // logger.Log(Report); } catch { _xmlConfigured = false; } try { using (var jsonReader = new StreamReader($"{path}/appsettings.json")) { options = jsonReader.ReadToEnd(); } _json = new EtlJsonOptions(options); _jsonConfigured = true; Report = _json.Report; Report += "Json options loaded successfully. "; // logger.Log(Report); } catch { _jsonConfigured = false; } if (!_jsonConfigured && !_xmlConfigured) { Report = "Failed to load both of json and xml. Using default options and creating appsettings.json"; // logger.Log(Report); if (!File.Exists($"{path}/appsettings.json")) { var json = Converter.SerializeJson(_defaultOptions); Validator.CreateDirectoryIfNotExist(path); using var appsettings = new StreamWriter($"{path}/appsettings.json"); appsettings.Write(json); } if (!File.Exists($"{path}/config.xml")) { var xml = Converter.SerializeXml(_defaultOptions); Validator.CreateDirectoryIfNotExist(path); using var configXml = new StreamWriter($"{path}/config.xml"); configXml.Write(xml); } } }
private void InitializeEtl() { OptionsProvider optionsProvider = new EtlJsonOptions(typeof(EtlOptions), "D:\\config.json"); EtlBuilder builder = new LabEtlBuilder(optionsProvider); ConfigurationManager configuration = new ConfigurationManager(builder); configuration.Construct(); etl = builder.GetResult(); }