Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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);
            }
        }