private void AddButton_Click(object sender, RoutedEventArgs e) { var dir = new OpenDirectoryDialog().OpenDirectory(); if (string.IsNullOrWhiteSpace(dir) == false) { var reader = new FolderSettingsFileReader(); var settings = reader.ReadFileAsync(dir).Result; if (settings == null) { var vm = AddDirectoryDialog.Show(dir); if (vm == null) { return; } settings = new FolderSettings((uint)vm.DaysBeforeRemoval, (DirectoriesDeleteBehaviour)vm.BehaviourID); var writer = new FolderSettingsFileSaver(); writer.SaveAsync(settings, dir).Wait(); } var specificSettings = new SpecificFolderSetting(dir, settings); App.Oldi.AddSettings(specificSettings); vm.FolderSettingItems.Add(new FolderSettingItemViewModel(specificSettings)); } }
private AppData LoadAppData() { string dataFile = configuration.DataFilePath; var settingsReader = new FolderSettingsFileReader(); if (!File.Exists(dataFile)) { return(AppData.Default); } try { AppData data; using (var reader = new StreamReader(dataFile)) { var json = reader.ReadToEnd(); data = JsonConvert.DeserializeObject <AppData>(json); } data.FolderSettings = data.FolderSettings ?? new List <SpecificFolderSetting>(); data.FolderSettings .WaitAll(x => x.LoadSettingsFromFile(settingsReader)); data.FolderSettings = data.FolderSettings .Where(f => f.Status != SpecificFolderSettingStatus.Broken) .ToList(); return(data); } catch (IOException) { // if something does not load right then file is broken. // We will use default file in that situation return(AppData.Default); } }