示例#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));
            }
        }
示例#2
0
        public void DaysToRemoveAndBehaviour_Path_ShouldBeSerialized()
        {
            var settings = new SpecificFolderSetting(
                "C:\\temp",
                30,
                DirectoriesDeleteBehaviour.DeleteFilesInside);

            var json = JsonConvert.SerializeObject(settings);
            var dyn  = JObject.Parse(json);

            Assert.True(dyn.ContainsKey("DirectoryPath"));
        }
        public FolderSettingItemViewModel(SpecificFolderSetting setting)
        {
            Path.Value = setting.DirectoryPath;
            if (setting.Status == SpecificFolderSettingStatus.Initialized)
            {
                DaysAge.Value           = setting.DayAgeToRemove;
                DeleteBehaviourID.Value = (int)setting.DirectoriesDeleteBehaviour;
                DeleteBehaviour.LinkWith(DeleteBehaviourID);
            }

            DaysAge.OnModify           += SettingsModified;
            DeleteBehaviourID.OnModify += SettingsModified;
        }
示例#4
0
        public void DaysToRemoveAndBehaviour_ShouldBeIgnoredDuringSerialization()
        {
            var settings = new SpecificFolderSetting(
                "C:\\temp",
                30,
                DirectoriesDeleteBehaviour.DeleteFilesInside);

            var json = JsonConvert.SerializeObject(settings);
            var dyn  = JObject.Parse(json);

            Assert.False(dyn.ContainsKey("DirectoriesDeleteBehaviour"));
            Assert.False(dyn.ContainsKey("DayAgeToRemove"));
        }
示例#5
0
        public void RemoveSetting(string directoryPath)
        {
            SpecificFolderSetting sett = GetSetting(directoryPath);

            Data.FolderSettings.Remove(sett);
        }
示例#6
0
 public void AddSettings(SpecificFolderSetting sett)
 {
     Data.FolderSettings.Add(sett);
 }