private void saveButton_Click(object sender, RoutedEventArgs e) { var newConfig = new DynDns53Config() { UpdateInterval = int.Parse(updateIntervalTextBox.Text), Route53AccessKey = accessKeyTextBox.Text, Route53SecretKey = secretKeyTextBox.Text, RunAtSystemStart = runAtStartCheckBox.IsChecked.Value }; newConfig.DomainList = new List <HostedDomainInfo>(); List <HostedDomainInfo> newList = domainsListView.Items.Cast <HostedDomainInfo>().ToList(); newList.ToList().ForEach(li => { newConfig.DomainList.Add(li); }); ConfigHandler.SaveConfig(newConfig); ReloadConfig = true; Close(); }
private void InitConfig() { AddLog("Loading configuration values..."); _configHandler = new AppConfigHandler(); _config = _configHandler.GetConfig(); _ipChecker = _config.IPChecker; var _amazonClient = new AmazonRoute53Client(_config.Route53AccessKey, _config.Route53SecretKey, RegionEndpoint.USEast1); _dnsUpdater = new DnsUpdater(_amazonClient); AddLog($"Found {_config.DomainList.Count} domain(s)"); foreach (HostedDomainInfo domainInfo in _config.DomainList) { AddLog($"{domainInfo.DomainName}"); } if (_timer != null) { // Stop to avoid multiple timer_Tick invocations _timer.Stop(); } int interval = _config.UpdateInterval; _timer = new System.Windows.Threading.DispatcherTimer(); _timer.Tick += timer_Tick; _timer.Interval = new TimeSpan(0, 0, interval); _timer.Start(); AddLog($"Time set to update domains every {interval} seconds"); SetAutoStart(); }
public void SaveConfig(DynDns53Config config) { string exeFileName = System.Reflection.Assembly.GetCallingAssembly().Location; var configFile = ConfigurationManager.OpenExeConfiguration(exeFileName); configFile.AppSettings.Settings.Remove("UpdateInterval"); configFile.AppSettings.Settings.Add("UpdateInterval", config.UpdateInterval.ToString()); configFile.AppSettings.Settings.Remove("RunAtSystemStart"); configFile.AppSettings.Settings.Add("RunAtSystemStart", config.RunAtSystemStart.ToString()); configFile.AppSettings.Settings.Remove("IPChecker"); configFile.AppSettings.Settings.Add("IPChecker", config.IPChecker.ToString()); // AWS section var awsConfigSection = configFile.GetSection("awsSettings"); awsConfigSection.SectionInformation.ForceSave = true; string rawXml = awsConfigSection.SectionInformation.GetRawXml(); awsConfigSection.ElementInformation.Properties["route53AccessKey"].Value = config.Route53AccessKey; awsConfigSection.ElementInformation.Properties["route53SecretKey"].Value = config.Route53SecretKey; // Domain info var domainConfigSection = configFile.GetSection("domainSettings") as DomainSettings; domainConfigSection.SectionInformation.ForceSave = true; domainConfigSection.DomainList.Clear(); foreach (var domain in config.DomainList) { domainConfigSection.DomainList.Add(new DomainElement() { SubDomain = domain.DomainName, ZoneId = domain.ZoneId }); } configFile.Save(ConfigurationSaveMode.Full); }
public DynDns53Config GetConfig() { ConfigurationManager.RefreshSection("appSettings"); ConfigurationManager.RefreshSection("awsSettings"); ConfigurationManager.RefreshSection("domainSettings"); _config = new DynDns53Config(); string exeFile = System.Reflection.Assembly.GetCallingAssembly().Location; var configFile = ConfigurationManager.OpenExeConfiguration(exeFile); var awsConfigSection = configFile.GetSection("awsSettings"); _config.UpdateInterval = int.Parse(ConfigurationManager.AppSettings["UpdateInterval"]); _config.ClientId = ConfigurationManager.AppSettings["ClientId"]; _config.IPChecker = IPCheckerHelper.CreateIPChecker((IPChecker)Enum.Parse(typeof(IPChecker), ConfigurationManager.AppSettings["IPChecker"])); _config.Route53AccessKey = awsConfigSection.ElementInformation.Properties["route53AccessKey"].Value.ToString(); _config.Route53SecretKey = awsConfigSection.ElementInformation.Properties["route53SecretKey"].Value.ToString(); _config.RunAtSystemStart = bool.Parse(ConfigurationManager.AppSettings["RunAtSystemStart"]); _config.DomainList = new List <HostedDomainInfo>(); var domainConfigSection = configFile.GetSection("domainSettings") as DomainSettings; var domainList = domainConfigSection.ElementInformation.Properties; foreach (DomainElement domainInfo in DomainSettings.Settings.DomainList) { if (!string.IsNullOrEmpty(domainInfo.SubDomain) && !string.IsNullOrEmpty(domainInfo.ZoneId)) { _config.DomainList.Add(new HostedDomainInfo() { DomainName = domainInfo.SubDomain, ZoneId = domainInfo.ZoneId }); } } return(_config); }
public void SaveConfig(DynDns53Config config) { throw new NotImplementedException(); }
public void SaveConfig(DynDns53Config config) { var configAsJson = Newtonsoft.Json.JsonConvert.SerializeObject(config); File.WriteAllText(_configName, configAsJson); }