protected ProfileModelFactoryBase(IProfileType profileType, IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, ISettingsFaultFinder settingsFaultFinder, GeneralOptions generalOptions, IViewOptions viewOptions, OptionModelSessionData sessionData) { if (profileType == null) { throw new ArgumentNullException(nameof(profileType)); } if (optionsViewModelParent == null) { throw new ArgumentNullException(nameof(optionsViewModelParent)); } if (outlookAccountPasswordProvider == null) { throw new ArgumentNullException(nameof(outlookAccountPasswordProvider)); } if (availableCategories == null) { throw new ArgumentNullException(nameof(availableCategories)); } if (optionTasks == null) { throw new ArgumentNullException(nameof(optionTasks)); } if (settingsFaultFinder == null) { throw new ArgumentNullException(nameof(settingsFaultFinder)); } if (generalOptions == null) { throw new ArgumentNullException(nameof(generalOptions)); } if (viewOptions == null) { throw new ArgumentNullException(nameof(viewOptions)); } if (sessionData == null) { throw new ArgumentNullException(nameof(sessionData)); } ProfileType = profileType; OptionsViewModelParent = optionsViewModelParent; OutlookAccountPasswordProvider = outlookAccountPasswordProvider; AvailableCategories = availableCategories; OptionTasks = optionTasks; SettingsFaultFinder = settingsFaultFinder; GeneralOptions = generalOptions; ViewOptions = viewOptions; SessionData = sessionData; ServerSettingsDetector = new Lazy <IServerSettingsDetector>(CreateServerSettingsDetector); }
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 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); } }
public ProfileModelFactory(IProfileType profileType, IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, GeneralOptions generalOptions, IViewOptions viewOptions, OptionModelSessionData sessionData) : base(profileType, optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, generalOptions, viewOptions, sessionData) { }
public override IProfileModelFactory CreateModelFactory(IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, GeneralOptions generalOptions, IViewOptions viewOptions, OptionModelSessionData sessionData) { return(new ProfileModelFactory(this, optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, generalOptions, viewOptions, sessionData)); }
public IProfileModelFactory CreateModelFactory(IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, ISettingsFaultFinder settingsFaultFinder, GeneralOptions generalOptions, IViewOptions viewOptions, OptionModelSessionData sessionData) { return(this); }
public SmarterMailProfile(IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, ISettingsFaultFinder settingsFaultFinder, GeneralOptions generalOptions, IViewOptions viewOptions, OptionModelSessionData sessionData) : base(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData) { }
public abstract IProfileModelFactory CreateModelFactory(IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, GeneralOptions generalOptions, IViewOptions viewOptions, OptionModelSessionData sessionData);
public static IProfileTypeRegistry Create( IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, ISettingsFaultFinder settingsFaultFinder, GeneralOptions generalOptions, IViewOptions viewOptions, OptionModelSessionData sessionData) { if (optionsViewModelParent == null) { throw new ArgumentNullException(nameof(optionsViewModelParent)); } if (outlookAccountPasswordProvider == null) { throw new ArgumentNullException(nameof(outlookAccountPasswordProvider)); } if (availableCategories == null) { throw new ArgumentNullException(nameof(availableCategories)); } if (optionTasks == null) { throw new ArgumentNullException(nameof(optionTasks)); } if (settingsFaultFinder == null) { throw new ArgumentNullException(nameof(settingsFaultFinder)); } if (generalOptions == null) { throw new ArgumentNullException(nameof(generalOptions)); } if (viewOptions == null) { throw new ArgumentNullException(nameof(viewOptions)); } if (sessionData == null) { throw new ArgumentNullException(nameof(sessionData)); } var generic = new GenericProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData); var google = new GoogleProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData); var all = new List <IProfileType> { generic, google }; all.Add(new ContactsiCloudProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new FruuxProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new PosteoProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new YandexProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new GmxCalendarProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new SarenetProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new LandmarksProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new SogoProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new CozyProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new NextcloudProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new MailboxOrgProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new EasyProjectProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new WebDeProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new SmarterMailProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); all.Add(new MailDeProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData)); return(new ProfileTypeRegistry(all, generic, google)); }