示例#1
0
        private Task RemoveOutputFolderExecute(object arg)
        {
            if (arg is string folder)
            {
                OutputFolders.Remove(folder);
            }

            return(Task.CompletedTask);
        }
示例#2
0
        private Task AddOutputFolderExecute(object arg)
        {
            if (!ServiceLocator.TryGetService(out IViewModelPresenter presenter))
            {
                throw new Exception($"{nameof(IViewModelPresenter)} missing.");
            }

            var viewModel = new SelectOutputFolderViewModel();

            viewModel.WhenFolderSelected.Subscribe(folder => OutputFolders.Add(folder));
            presenter.Present(viewModel);

            return(Task.CompletedTask);
        }
        private void PersistAllSettings(PersistDirection direction)
        {
            if (direction == PersistDirection.Load && Settings.Default.UpgradeSetting)
            {
                Settings.Default.Upgrade();
                Settings.Default.UpgradeSetting = false;
                Settings.Default.Save();
            }
            foreach (var setting in PersistedSettings)
            {
                var vmProp = MyProps.FirstOrDefault(x => x.Name.Equals(setting.Name, StringComparison.InvariantCultureIgnoreCase));
                if (vmProp != null)
                {
                    switch (direction)
                    {
                    case PersistDirection.Load:
                        vmProp.SetValue(this, setting.GetValue(Settings.Default));
                        break;

                    case PersistDirection.Save:
                        setting.SetValue(Settings.Default, vmProp.GetValue(this));
                        break;
                    }
                }
            }
            switch (direction)
            {
            case PersistDirection.Load:
                var outputHistory = Settings.Default.OutputHistory;
                if (outputHistory != null)
                {
                    foreach (var output in outputHistory)
                    {
                        OutputFolders.Add(output);
                    }
                }
                break;

            case PersistDirection.Save:
                Settings.Default.OutputHistory = new System.Collections.Specialized.StringCollection();
                foreach (var output in OutputFolders)
                {
                    Settings.Default.OutputHistory.Add(output);
                }
                Settings.Default.Save();
                break;
            }
        }