public Options[] ShowWpfOptions(Guid?initialSelectedProfileId, GeneralOptions generalOptions, Options[] options) { string[] categories; using (var categoriesWrapper = GenericComObjectWrapper.Create(_session.Categories)) { categories = categoriesWrapper.Inner.ToSafeEnumerable <Category>().Select(c => c.Name).ToArray(); } var viewModel = new OptionsCollectionViewModel( _session, generalOptions, _outlookAccountPasswordProvider, categories, GetProfileDataDirectory); _currentVisibleOptionsFormOrNull = viewModel; viewModel.SetOptionsCollection(options, initialSelectedProfileId); if (_uiService.ShowOptions(viewModel)) { _optionsDataAccess.EnsureBackupExists("Wpf"); return(viewModel.GetOptionsCollection()); } else { return(null); } }
public async Task ShowOptionsAsync(Guid?initialVisibleProfile = null) { if (_currentVisibleOptionsFormOrNull == null) { var options = _optionsDataAccess.Load(); GeneralOptions generalOptions = _generalOptionsDataAccess.LoadOptions(); try { var newOptions = ShowWpfOptions(initialVisibleProfile, generalOptions, options, out var oneTimeTasks); if (newOptions != null) { s_logger.Info("Applying new options"); await ApplyNewOptions(options, newOptions, generalOptions, oneTimeTasks); s_logger.Info("Applied new options"); } } finally { _currentVisibleOptionsFormOrNull = null; } } else { _currentVisibleOptionsFormOrNull.BringToFront(); if (initialVisibleProfile.HasValue) { _currentVisibleOptionsFormOrNull.ShowProfile(initialVisibleProfile.Value); } } }
public async Task ShowOptions(Guid?initialVisibleProfile = null) { if (_currentVisibleOptionsFormOrNull == null) { var options = _optionsDataAccess.LoadOptions(); GeneralOptions generalOptions = _generalOptionsDataAccess.LoadOptions(); try { var newOptions = ShowWpfOptions(initialVisibleProfile, generalOptions, options); if (newOptions != null) { await ApplyNewOptions(options, newOptions, generalOptions); } } finally { _currentVisibleOptionsFormOrNull = null; } } else { _currentVisibleOptionsFormOrNull.BringToFront(); if (initialVisibleProfile.HasValue) { _currentVisibleOptionsFormOrNull.ShowProfile(initialVisibleProfile.Value); } } }
private Options[] ShowWinFormOptions(Guid?initialVisibleProfile, GeneralOptions generalOptions, Options[] options) { var optionsForm = new OptionsForm( _session, GetProfileDataDirectory, generalOptions.FixInvalidSettings, _outlookAccountPasswordProvider); _currentVisibleOptionsFormOrNull = optionsForm; optionsForm.OptionsList = options; if (initialVisibleProfile.HasValue) { _currentVisibleOptionsFormOrNull.ShowProfile(initialVisibleProfile.Value); } if (optionsForm.ShowDialog() == DialogResult.OK) { return(optionsForm.OptionsList); } else { return(null); } }
public Options[] ShowWpfOptions(Guid?initialSelectedProfileId, GeneralOptions generalOptions, Options[] options) { string[] categories; using (var categoriesWrapper = GenericComObjectWrapper.Create(_session.Categories)) { categories = categoriesWrapper.Inner.ToSafeEnumerable <Category>().Select(c => c.Name).ToArray(); } var faultFinder = generalOptions.FixInvalidSettings ? new SettingsFaultFinder(EnumDisplayNameProvider.Instance) : NullSettingsFaultFinder.Instance; var optionTasks = new OptionTasks(_session, EnumDisplayNameProvider.Instance, faultFinder); var viewOptions = new ViewOptions(generalOptions.EnableAdvancedView); var viewModel = new OptionsCollectionViewModel( generalOptions.ExpandAllSyncProfiles, GetProfileDataDirectory, _uiService, optionTasks, p => ProfileTypeRegistry.Create(p, _outlookAccountPasswordProvider, categories, optionTasks, faultFinder, generalOptions, viewOptions), viewOptions); _currentVisibleOptionsFormOrNull = viewModel; viewModel.SetOptionsCollection(options, initialSelectedProfileId); if (_uiService.ShowOptions(viewModel)) { _optionsDataAccess.EnsureBackupExists("SimplifiedUi"); return(viewModel.GetOptionsCollection()); } else { return(null); } }
public Options[] ShowWpfOptions(Guid?initialSelectedProfileId, GeneralOptions generalOptions, Options[] options, out OneTimeChangeCategoryTask[] oneTimeTasks) { string[] categories; using (var categoriesWrapper = GenericComObjectWrapper.Create(_session.Categories)) { categories = categoriesWrapper.Inner.ToSafeEnumerable <Category>().Select(c => c.Name).ToArray(); } var faultFinder = generalOptions.FixInvalidSettings ? new SettingsFaultFinder(EnumDisplayNameProvider.Instance) : NullSettingsFaultFinder.Instance; var optionTasks = new OptionTasks(_session, EnumDisplayNameProvider.Instance, faultFinder, _outlookSession); var viewOptions = new ViewOptions(generalOptions.EnableAdvancedView); OptionModelSessionData sessionData = new OptionModelSessionData(_outlookSession.GetCategories().ToDictionary(c => c.Name, _outlookSession.CategoryNameComparer)); var viewModel = new OptionsCollectionViewModel( generalOptions.ExpandAllSyncProfiles, GetProfileDataDirectory, _uiService, optionTasks, _profileTypeRegistry, (parent, type) => type.CreateModelFactory(parent, _outlookAccountPasswordProvider, categories, optionTasks, faultFinder, generalOptions, viewOptions, sessionData), viewOptions); _currentVisibleOptionsFormOrNull = viewModel; viewModel.SetOptionsCollection(options, initialSelectedProfileId); if (_uiService.ShowOptions(viewModel)) { oneTimeTasks = viewModel.GetOneTimeTasks(); return(viewModel.GetOptionsCollection()); } else { oneTimeTasks = null; return(null); } }
public void ShowOptions(Guid?initialVisibleProfile = null) { if (_currentVisibleOptionsFormOrNull == null) { var options = _optionsDataAccess.LoadOptions(); GeneralOptions generalOptions = _generalOptionsDataAccess.LoadOptions(); try { Options[] newOptions; if (generalOptions.UseNewOptionUi) { newOptions = ShowWpfOptions(initialVisibleProfile, generalOptions, options); } else { newOptions = ShowWinFormOptions(initialVisibleProfile, generalOptions, options); } if (newOptions != null) { ApplyNewOptions(options, newOptions, generalOptions); } } finally { _currentVisibleOptionsFormOrNull = null; } } else { _currentVisibleOptionsFormOrNull.BringToFront(); if (initialVisibleProfile.HasValue) { _currentVisibleOptionsFormOrNull.ShowProfile(initialVisibleProfile.Value); } } }
public Options[] ShowWpfOptions(Guid?initialSelectedProfileId, GeneralOptions generalOptions, Options[] options, out OneTimeChangeCategoryTask[] oneTimeTasks) { var optionTasks = new OptionTasks(_session, EnumDisplayNameProvider.Instance, _outlookSession); var viewOptions = new ViewOptions(generalOptions.EnableAdvancedView); var categories = _outlookSession .GetCategories() .GroupBy(c => c.Name, _outlookSession.CategoryNameComparer) .Select(g => g.First()) .ToArray(); var categoryNames = categories.Select(c => c.Name).ToArray(); OptionModelSessionData sessionData = new OptionModelSessionData(categories.ToDictionary(c => c.Name, _outlookSession.CategoryNameComparer)); var viewModel = new OptionsCollectionViewModel( generalOptions.ExpandAllSyncProfiles, GetProfileDataDirectory, _uiService, optionTasks, _profileTypeRegistry, (parent, type) => type.CreateModelFactory(parent, _outlookAccountPasswordProvider, categoryNames, optionTasks, generalOptions, viewOptions, sessionData), viewOptions); _currentVisibleOptionsFormOrNull = viewModel; viewModel.SetOptionsCollection(options, initialSelectedProfileId); if (_uiService.ShowOptions(viewModel)) { oneTimeTasks = viewModel.GetOneTimeTasks(); return(viewModel.GetOptionsCollection()); } else { oneTimeTasks = null; return(null); } }