private void SaveConfig() { CleanerConfig config = new CleanerConfig(); //Ensure all rows are valid for (int i = _directoryRows.Count - 1; i >= 0; i--) { if (_directoryRows[i].IsDeleted) { _directoryRows.RemoveAt(i); } } for (int i = 0; i < _directoryRows.Count; i++) { string path = _directoryRows[i].Path; int ageLimit = _directoryRows[i].AgeLimit; if (config.SearchedDirectories.Contains(new SearchedDirectory(path, ageLimit)) == false) { config.SearchedDirectories.Add(new SearchedDirectory(path, ageLimit)); } } config.BreakTime = (int)breakTimeNumericUpDown.Value; config.PromptValue = (int)decisionTimeNumericUpDown.Value; config.CombineTime = (int)combineTimeNumericUpDown.Value; config.DelayedStart = (int)delayNumericUpDown.Value; config.DeletionStrategy = (notifyEnabledCheckBox.Checked ? "Notify" : "None"); config.DefaultKeep = defaultActionComboBox.SelectedItem.ToString().Equals("Keep", StringComparison.OrdinalIgnoreCase); CleanerConfig.SaveConfigToFile(config, CleanerConfig.DEFAULT_CONFIG_PATH); }
static void Main(string[] args) { //Load config CleanerConfig config = CleanerConfig.ParseConfig(CleanerConfig.DEFAULT_CONFIG_PATH); Thread.Sleep(config.DelayedStart * 1000 * 60); //Create cleaner DirectoryCleaner cleaner = new DirectoryCleaner(); cleaner.SetConfig(config); cleaner.Start(); //Update cleaner if config changes ConfigWatcher watcher = null; watcher = new ConfigWatcher("CleanerSettings.xml", delegate { Console.WriteLine("Config Changed!"); watcher.Stop(); cleaner.Stop(); CleanerConfig newConfig = CleanerConfig.ParseConfig(CleanerConfig.DEFAULT_CONFIG_PATH); cleaner.SetConfig(newConfig); cleaner.Start(); watcher.Start(); }); watcher.Start(); Console.ReadLine(); }
public void SetConfig(CleanerConfig config) { _config = config; Console.WriteLine("Loading deletion: " + _config.DeletionStrategy); _strategy = DeletionStrategy.GetStrategy(_config.DeletionStrategy); Console.WriteLine(_strategy.GetType()); if (_strategy is NotifyDeletionStrategy) { //Set notify deletion strategy data ((NotifyDeletionStrategy)_strategy).SetSettings(_config.PromptValue, _config.DefaultKeep); } SearchForFiles(); }
public CleanerSettingsApplication() { InitializeComponent(); CleanerConfig config = CleanerConfig.ParseConfig(CleanerConfig.DEFAULT_CONFIG_PATH); if (config == null) { config = CleanerConfig.DefaultConfig; } //Load in config for (int i = 0; i < config.SearchedDirectories.Count; i++) { AddTableEntry(); _directoryRows[i].SetRowValues(config.SearchedDirectories[i].Path, config.SearchedDirectories[i].FileAgeLimit); } notifyEnabledCheckBox.Checked = config.DeletionStrategy.Equals("Notify", StringComparison.OrdinalIgnoreCase); breakTimeNumericUpDown.Value = config.BreakTime; combineTimeNumericUpDown.Value = config.CombineTime; delayNumericUpDown.Value = config.DelayedStart; decisionTimeNumericUpDown.Value = config.PromptValue; defaultActionComboBox.SelectedIndex = config.DefaultKeep ? 0 : 1; }