private Task RemoveOutputFolderExecute(object arg) { if (arg is string folder) { OutputFolders.Remove(folder); } return(Task.CompletedTask); }
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; } }