static async Task Main(string[] args) { IEnvVarReader envVarReader = new EnvVarReader(); CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); try { var service = new DnsService(envVarReader); Console.CancelKeyPress += (sender, eventArgs) => { Console.WriteLine("Cancel event triggered"); cancellationTokenSource .Cancel(false); eventArgs.Cancel = true; }; await service.Start(cancellationTokenSource.Token).ConfigureAwait(false); service.Dispose(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } Console.WriteLine("DNS Server was stopped successfully."); }
private GXProperties ProcessProperties(string serviceType, string serviceName, GXXMLReader reader) { GXProperties properties = new GXProperties(); reader.Read(); while (reader.Name == "Property") { reader.ReadType(1, "Name"); string name = reader.Value; reader.ReadType(1, "Value"); string value = reader.Value; if (EnvVarReader.GetEnvironmentValue(serviceType, serviceName, name, out string envVarValue)) { value = envVarValue; } properties.Add(name, value); reader.Read(); reader.Read(); } return(properties); }
static NameValueCollection loadConfigJson(string appSettings) { if (ConfigRoot == null) { var builder = new ConfigurationBuilder() .SetBasePath(FileUtil.GetBasePath()) .AddJsonFile(appSettings, optional: false, reloadOnChange: true) .AddEnvironmentVariables(); ConfigRoot = builder.Build(); } languages = new Hashtable(StringComparer.OrdinalIgnoreCase); NameValueCollection cfg = new NameValueCollection(StringComparer.Ordinal); //Case sensitive foreach (var c in ConfigRoot.GetSection("appSettings").GetChildren()) { string key = c.Key; string value = c.Value; if (EnvVarReader.GetEnvironmentValue(key, out string envVarValue)) { value = envVarValue; } cfg.Add(key, value); } foreach (var c in ConfigRoot.GetSection("languages").GetChildren()) { languages[c.Key] = new Hashtable(StringComparer.OrdinalIgnoreCase); Hashtable language = (Hashtable)languages[c.Key]; foreach (var prop in c.GetChildren()) { language[prop.Key] = prop.Value; } } return(cfg); }
static NameValueCollection loadConfig(string filename, out string logConfigSource) { GXLogging.Debug(log, "Start loadConfig, filename '", filename, "'"); NameValueCollection cfg = new NameValueCollection(StringComparer.Ordinal); //Case sensitive logConfigSource = null; if (!File.Exists(filename)) { return(cfg); } #pragma warning disable CA3075 // Insecure DTD processing in XML using (XmlReader rdr = XmlReader.Create(filename)) #pragma warning restore CA3075 // Insecure DTD processing in XML { languages = new Hashtable(StringComparer.OrdinalIgnoreCase); while (rdr.Read()) { if (rdr.IsStartElement()) { if (rdr.Name.Equals("datastores")) { while (rdr.Read() && !(!rdr.IsStartElement() && rdr.Name.Equals("datastores"))) { if (!(rdr.IsStartElement() && rdr["key"] == null) && (rdr.IsStartElement())) { cfg.Add(rdr["key"], rdr["value"]); } } } else if (rdr.Name.Equals("appSettings")) { while (rdr.Read() && rdr.IsStartElement()) { string key = rdr["key"]; string value = rdr["value"]; if (EnvVarReader.GetEnvironmentValue(key, out string envVarValue)) { value = envVarValue; } cfg.Add(key, value); } } else if (rdr.Name.Equals("log4net") && rdr.IsStartElement()) { logConfigSource = rdr["configSource"]; } else if (rdr.Name.Equals("languages")) { while (rdr.Read() && rdr.IsStartElement()) { languages[rdr.Name] = new Hashtable(StringComparer.OrdinalIgnoreCase); Hashtable language = (Hashtable)languages[rdr.Name]; language["code"] = rdr["code"]; language["time_fmt"] = rdr["time_fmt"]; language["decimal_point"] = rdr["decimal_point"]; language["date_fmt"] = rdr["date_fmt"]; language["culture"] = rdr["culture"]; language["thousand_sep"] = rdr["thousand_sep"]; } } } } } GXLogging.Debug(log, "Return loadConfig"); return(cfg); }