public ServerSettingsViewModel (ISettingsFaultFinder settingsFaultFinder, ICurrentOptions currentOptions, IOutlookAccountPasswordProvider outlookAccountPasswordProvider) { if (settingsFaultFinder == null) throw new ArgumentNullException (nameof (settingsFaultFinder)); if (currentOptions == null) throw new ArgumentNullException (nameof (currentOptions)); _settingsFaultFinder = settingsFaultFinder; _currentOptions = currentOptions; _outlookAccountPasswordProvider = outlookAccountPasswordProvider; _testConnectionCommand = new DelegateCommandWithoutCanExecuteDelegation (_ => { ComponentContainer.EnsureSynchronizationContext(); TestConnectionAsync(); }); _getAccountSettingsCommand = new DelegateCommandWithoutCanExecuteDelegation (_ => { ComponentContainer.EnsureSynchronizationContext(); GetAccountSettings(); }); _createDavResourceCommand = new DelegateCommandWithoutCanExecuteDelegation (_ => { ComponentContainer.EnsureSynchronizationContext(); CreateDavResource(); }); }
public static IProfileTypeRegistry Create( IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, ISettingsFaultFinder settingsFaultFinder, GeneralOptions generalOptions, IViewOptions viewOptions) { 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)); } var generic = new GenericProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions); var google = new GoogleProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions); var all = new List <IProfileType> { generic, google }; all.Add(new FruuxProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); all.Add(new PosteoProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); all.Add(new YandexProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); all.Add(new GmxCalendarProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); all.Add(new SarenetProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); all.Add(new LandmarksProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); all.Add(new SogoProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); all.Add(new CozyProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); all.Add(new NextcloudProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); all.Add(new MailboxOrgProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); all.Add(new EasyProjectProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); all.Add(new WebDeProfile(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions)); return(new ProfileTypeRegistry(all, generic, google)); }
public ServerSettingsViewModel(ISettingsFaultFinder settingsFaultFinder, ICurrentOptions currentOptions, IOutlookAccountPasswordProvider outlookAccountPasswordProvider) { if (settingsFaultFinder == null) { throw new ArgumentNullException(nameof(settingsFaultFinder)); } if (currentOptions == null) { throw new ArgumentNullException(nameof(currentOptions)); } _settingsFaultFinder = settingsFaultFinder; _currentOptions = currentOptions; _outlookAccountPasswordProvider = outlookAccountPasswordProvider; _testConnectionCommand = new DelegateCommandWithoutCanExecuteDelegation(_ => { ComponentContainer.EnsureSynchronizationContext(); TestConnectionAsync(); }); _getAccountSettingsCommand = new DelegateCommandWithoutCanExecuteDelegation(_ => { ComponentContainer.EnsureSynchronizationContext(); GetAccountSettings(); }); _createDavResourceCommand = new DelegateCommandWithoutCanExecuteDelegation(_ => { ComponentContainer.EnsureSynchronizationContext(); CreateDavResource(); }); }
public OptionsModel( ISettingsFaultFinder faultFinder, IOptionTasks optionTasks, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, Contracts.Options data, GeneralOptions generalOptions, IProfileModelFactory profileModelFactory, bool isGoogle, OptionModelSessionData sessionData, IServerSettingsDetector serverSettingsDetector) { if (data == null) { throw new ArgumentNullException(nameof(data)); } if (serverSettingsDetector == null) { throw new ArgumentNullException(nameof(serverSettingsDetector)); } _mappingConfigurationModelFactory = new MappingConfigurationModelFactory(sessionData); _faultFinder = faultFinder ?? throw new ArgumentNullException(nameof(faultFinder)); _optionTasks = optionTasks ?? throw new ArgumentNullException(nameof(optionTasks)); _outlookAccountPasswordProvider = outlookAccountPasswordProvider ?? throw new ArgumentNullException(nameof(outlookAccountPasswordProvider)); _generalOptions = generalOptions ?? throw new ArgumentNullException(nameof(generalOptions)); ModelFactory = profileModelFactory ?? throw new ArgumentNullException(nameof(profileModelFactory)); _sessionData = sessionData ?? throw new ArgumentNullException(nameof(sessionData)); Id = data.Id; _isGoogle = isGoogle; _serverSettingsDetector = serverSettingsDetector; InitializeData(data); }
public void Initialize(ISettingsFaultFinder settingsFaultFinder, IServerSettingsControlDependencies dependencies) { InitializeComponent(); _settingsFaultFinder = settingsFaultFinder; _dependencies = dependencies; _testConnectionButton.Click += TestConnectionButton_Click; }
public void Initialize (ISettingsFaultFinder settingsFaultFinder, IServerSettingsControlDependencies dependencies) { InitializeComponent(); _settingsFaultFinder = settingsFaultFinder; _dependencies = dependencies; _testConnectionButton.Click += _testConnectionButton_Click; }
public void Initialize( NameSpace session, ISettingsFaultFinder faultFinder) { InitializeComponent(); _session = session; _faultFinder = faultFinder; _selectOutlookFolderButton.Click += _selectOutlookFolderButton_Click; }
public void Initialize ( NameSpace session, ISettingsFaultFinder faultFinder) { InitializeComponent(); _session = session; _faultFinder = faultFinder; _selectOutlookFolderButton.Click += _selectOutlookFolderButton_Click; }
public void Initialize (ISettingsFaultFinder settingsFaultFinder, IServerSettingsControlDependencies dependencies) { InitializeComponent(); _settingsFaultFinder = settingsFaultFinder; _dependencies = dependencies; _testConnectionButton.Click += _testConnectionButton_Click; _serverAdapterTypeControl = _serverAdapterTypeControlImp; _serverAdapterTypeControl.SelectedServerAdapterTypeChanged += _serverAdapterTypeControl_SelectedServerAdapterTypeChanged; }
public void Initialize(ISettingsFaultFinder settingsFaultFinder, IServerSettingsControlDependencies dependencies) { InitializeComponent(); _settingsFaultFinder = settingsFaultFinder; _dependencies = dependencies; _testConnectionButton.Click += _testConnectionButton_Click; _serverAdapterTypeControl = _serverAdapterTypeControlImp; _serverAdapterTypeControl.SelectedServerAdapterTypeChanged += _serverAdapterTypeControl_SelectedServerAdapterTypeChanged; }
public void Initialize( ISettingsFaultFinder settingsFaultFinder, IServerSettingsControlDependencies dependencies, IOutlookAccountPasswordProvider outlookAccountPasswordProvider) { InitializeComponent(); _settingsFaultFinder = settingsFaultFinder; _dependencies = dependencies; _outlookAccountPasswordProvider = outlookAccountPasswordProvider; _testConnectionButton.Click += TestConnectionButton_Click; }
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 OutlookFolderViewModel(NameSpace session, ISettingsFaultFinder faultFinder) { if (session == null) { throw new ArgumentNullException(nameof(session)); } if (faultFinder == null) { throw new ArgumentNullException(nameof(faultFinder)); } _session = session; _faultFinder = faultFinder; SelectFolderCommand = new DelegateCommand(_ => SelectFolder()); }
public OutlookFolderViewModel(ISettingsFaultFinder faultFinder, IOptionTasks optionTasks) { if (faultFinder == null) { throw new ArgumentNullException(nameof(faultFinder)); } if (optionTasks == null) { throw new ArgumentNullException(nameof(optionTasks)); } _faultFinder = faultFinder; _optionTasks = optionTasks; SelectFolderCommand = new DelegateCommand(_ => SelectFolder()); }
public OptionsModel( ISettingsFaultFinder faultFinder, IOptionTasks optionTasks, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, Contracts.Options data, GeneralOptions generalOptions, IProfileType profileType, bool isGoogle) { if (data == null) { throw new ArgumentNullException(nameof(data)); } if (faultFinder == null) { throw new ArgumentNullException(nameof(faultFinder)); } if (optionTasks == null) { throw new ArgumentNullException(nameof(optionTasks)); } if (outlookAccountPasswordProvider == null) { throw new ArgumentNullException(nameof(outlookAccountPasswordProvider)); } if (generalOptions == null) { throw new ArgumentNullException(nameof(generalOptions)); } if (profileType == null) { throw new ArgumentNullException(nameof(profileType)); } _faultFinder = faultFinder; _optionTasks = optionTasks; _outlookAccountPasswordProvider = outlookAccountPasswordProvider; _generalOptions = generalOptions; ProfileType = profileType; Id = data.Id; _isGoogle = isGoogle; InitializeData(data); }
public GoogleServerSettingsViewModel (ISettingsFaultFinder settingsFaultFinder, ICurrentOptions currentOptions) { if (settingsFaultFinder == null) throw new ArgumentNullException (nameof (settingsFaultFinder)); if (currentOptions == null) throw new ArgumentNullException (nameof (currentOptions)); _settingsFaultFinder = settingsFaultFinder; _currentOptions = currentOptions; _currentOptions.OutlookFolderTypeChanged += CurrentOptions_OutlookFolderTypeChanged; _doAutoDiscoveryCommand = new DelegateCommandWithoutCanExecuteDelegation (_ => DoAutoDiscovery()); _testConnectionCommand = new DelegateCommandWithoutCanExecuteDelegation (_ => { ComponentContainer.EnsureSynchronizationContext(); TestConnectionAsync (CalenderUrl); }); }
public OptionTasks(NameSpace session, IEnumDisplayNameProvider enumDisplayNameProvider, ISettingsFaultFinder settingsFaultFinder) { if (session == null) { throw new ArgumentNullException(nameof(session)); } if (enumDisplayNameProvider == null) { throw new ArgumentNullException(nameof(enumDisplayNameProvider)); } if (settingsFaultFinder == null) { throw new ArgumentNullException(nameof(settingsFaultFinder)); } _session = session; _enumDisplayNameProvider = enumDisplayNameProvider; _settingsFaultFinder = settingsFaultFinder; }
public ServerSettingsViewModel(ISettingsFaultFinder settingsFaultFinder, ICurrentOptions currentOptions) { if (settingsFaultFinder == null) { throw new ArgumentNullException(nameof(settingsFaultFinder)); } if (currentOptions == null) { throw new ArgumentNullException(nameof(currentOptions)); } _settingsFaultFinder = settingsFaultFinder; _currentOptions = currentOptions; _testConnectionCommand = new DelegateCommandWithoutCanExecuteDelegation(_ => { ComponentContainer.EnsureSynchronizationContext(); TestConnectionAsync(); }); }
public GoogleServerSettingsViewModel(ISettingsFaultFinder settingsFaultFinder, ICurrentOptions currentOptions) { if (settingsFaultFinder == null) { throw new ArgumentNullException(nameof(settingsFaultFinder)); } if (currentOptions == null) { throw new ArgumentNullException(nameof(currentOptions)); } _settingsFaultFinder = settingsFaultFinder; _currentOptions = currentOptions; _currentOptions.OutlookFolderTypeChanged += CurrentOptions_OutlookFolderTypeChanged; _doAutoDiscoveryCommand = new DelegateCommandWithoutCanExecuteDelegation(_ => DoAutoDiscovery()); _testConnectionCommand = new DelegateCommandWithoutCanExecuteDelegation(_ => { ComponentContainer.EnsureSynchronizationContext(); TestConnectionAsync(CalenderUrl); }); }
protected ProfileBase(IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, ISettingsFaultFinder settingsFaultFinder, GeneralOptions generalOptions, IViewOptions viewOptions) { 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)); } OptionsViewModelParent = optionsViewModelParent; OutlookAccountPasswordProvider = outlookAccountPasswordProvider; AvailableCategories = availableCategories; OptionTasks = optionTasks; SettingsFaultFinder = settingsFaultFinder; GeneralOptions = generalOptions; ViewOptions = viewOptions; }
public OptionsDisplayControl (NameSpace session) { InitializeComponent(); if (bool.Parse (ConfigurationManager.AppSettings["automaticallyFixSettings"])) _faultFinder = new SettingsFaultFinder (this); else _faultFinder = NullSettingsFaultFinder.Instance; _session = session; BindComboBox (_syncIntervalComboBox, _availableSyncIntervals); BindComboBox (_conflictResolutionComboBox, _availableConflictResolutions); BindComboBox (_synchronizationModeComboBox, _availableSynchronizationModes); _testConnectionButton.Click += _testConnectionButton_Click; _selectOutlookFolderButton.Click += _selectOutlookFolderButton_Click; _profileNameTextBox.TextChanged += _profileNameTextBox_TextChanged; _synchronizationModeComboBox.SelectedValueChanged += _synchronizationModeComboBox_SelectedValueChanged; _inactiveCheckBox.CheckedChanged += _inactiveCheckBox_CheckedChanged; }
public GenericProfile(IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, ISettingsFaultFinder settingsFaultFinder, GeneralOptions generalOptions, IViewOptions viewOptions) : base(optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions) { }
public IProfileModelFactory CreateModelFactory(IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, ISettingsFaultFinder settingsFaultFinder, GeneralOptions generalOptions, IViewOptions viewOptions, OptionModelSessionData sessionData) { return(this); }
public ProfileModelFactory(IProfileType profileType, IOptionsViewModelParent optionsViewModelParent, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, IReadOnlyList <string> availableCategories, IOptionTasks optionTasks, ISettingsFaultFinder settingsFaultFinder, GeneralOptions generalOptions, IViewOptions viewOptions, OptionModelSessionData sessionData) : base(profileType, optionsViewModelParent, outlookAccountPasswordProvider, availableCategories, optionTasks, settingsFaultFinder, generalOptions, viewOptions, sessionData) { }
IServerSettingsViewModel CreateServerSettingsViewModel(ISettingsFaultFinder settingsFaultFinder, ICurrentOptions currentOptions) { return(new ServerSettingsViewModel(settingsFaultFinder, currentOptions, _outlookAccountPasswordProvider)); }
IServerSettingsViewModel CreateGoogleServerSettingsViewModel(ISettingsFaultFinder settingsFaultFinder, ICurrentOptions currentOptions) { return(new GoogleServerSettingsViewModel(settingsFaultFinder, currentOptions)); }
public OptionsDisplayControl ( NameSpace session, Func<Guid, string> profileDataDirectoryFactory, bool fixInvalidSettings) { InitializeComponent(); if (fixInvalidSettings) _faultFinder = new SettingsFaultFinder (this); else _faultFinder = NullSettingsFaultFinder.Instance; _session = session; _profileDataDirectoryFactory = profileDataDirectoryFactory; BindComboBox (_syncIntervalComboBox, _availableSyncIntervals); BindComboBox (_conflictResolutionComboBox, _availableConflictResolutions); BindComboBox (_synchronizationModeComboBox, _availableSynchronizationModes); _testConnectionButton.Click += _testConnectionButton_Click; _selectOutlookFolderButton.Click += _selectOutlookFolderButton_Click; _profileNameTextBox.TextChanged += _profileNameTextBox_TextChanged; _synchronizationModeComboBox.SelectedValueChanged += _synchronizationModeComboBox_SelectedValueChanged; _inactiveCheckBox.CheckedChanged += _inactiveCheckBox_CheckedChanged; }
public static async Task TestGoogleConnection(ICurrentOptions currentOptions, ISettingsFaultFinder settingsFaultFinder) { if (currentOptions.OutlookFolderType == null) { MessageBox.Show("Please select an Outlook folder to specify the item type for this profile", ConnectionTestCaption); return; } var outlookFolderType = currentOptions.OutlookFolderType.Value; StringBuilder errorMessageBuilder = new StringBuilder(); if (!ValidateGoogleEmailAddress(errorMessageBuilder, currentOptions.EmailAddress)) { MessageBox.Show(errorMessageBuilder.ToString(), "The Email Address is invalid", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (outlookFolderType == OlItemType.olTaskItem) { await TestGoogleTaskConnection(currentOptions, errorMessageBuilder, outlookFolderType); return; } if (!ValidateWebDavUrl(currentOptions.ServerUrl, errorMessageBuilder, false)) { MessageBox.Show(errorMessageBuilder.ToString(), "The CalDav/CardDav Url is invalid", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var enteredUri = new Uri(currentOptions.ServerUrl); var webDavClient = currentOptions.CreateWebDavClient(); Uri autoDiscoveredUrl; ResourceType autoDiscoveredResourceType; if (ConnectionTester.RequiresAutoDiscovery(enteredUri)) { var calDavDataAccess = new CalDavDataAccess(enteredUri, webDavClient); var foundCaldendars = await calDavDataAccess.GetUserCalendarsNoThrow(false); var cardDavDataAccess = new CardDavDataAccess(enteredUri, webDavClient); IReadOnlyList <Tuple <Uri, string> > foundAddressBooks = await cardDavDataAccess.GetUserAddressBooksNoThrow(true); if (foundCaldendars.Count > 0 || foundAddressBooks.Count > 0) { ResourceType initalResourceType; if (currentOptions.OutlookFolderType == OlItemType.olContactItem) { initalResourceType = ResourceType.AddressBook; } else if (currentOptions.OutlookFolderType == OlItemType.olTaskItem) { initalResourceType = ResourceType.TaskList; } else { initalResourceType = ResourceType.Calendar; } using (SelectResourceForm listCalendarsForm = new SelectResourceForm( foundCaldendars, foundAddressBooks, new Tuple <string, string>[] {}, initalResourceType)) { if (listCalendarsForm.ShowDialog() == DialogResult.OK) { if (listCalendarsForm.ResourceType == ResourceType.TaskList) { autoDiscoveredUrl = null; currentOptions.ServerUrl = listCalendarsForm.SelectedUrl; } else { autoDiscoveredUrl = new Uri(enteredUri.GetLeftPart(UriPartial.Authority) + listCalendarsForm.SelectedUrl); } autoDiscoveredResourceType = listCalendarsForm.ResourceType; } else { autoDiscoveredUrl = null; autoDiscoveredResourceType = ResourceType.None; } } } else { MessageBox.Show("No resources were found via autodiscovery!", ConnectionTestCaption); autoDiscoveredUrl = null; autoDiscoveredResourceType = ResourceType.None; } } else { var result = await ConnectionTester.TestConnection(enteredUri, webDavClient, ResourceType.None); if (result.ResourceType != ResourceType.None) { settingsFaultFinder.FixSynchronizationMode(result); } DisplayTestReport( result, currentOptions.SynchronizationMode, currentOptions.SynchronizationModeDisplayName, outlookFolderType); return; } if (autoDiscoveredUrl != null) { currentOptions.ServerUrl = autoDiscoveredUrl.ToString(); var finalResult = await ConnectionTester.TestConnection(autoDiscoveredUrl, webDavClient, autoDiscoveredResourceType); settingsFaultFinder.FixSynchronizationMode(finalResult); DisplayTestReport( finalResult, currentOptions.SynchronizationMode, currentOptions.SynchronizationModeDisplayName, outlookFolderType); } else if (outlookFolderType == OlItemType.olTaskItem) { TestResult result = new TestResult(ResourceType.TaskList, CalendarProperties.None, AddressBookProperties.None); DisplayTestReport( result, currentOptions.SynchronizationMode, currentOptions.SynchronizationModeDisplayName, outlookFolderType); } }
public static async Task <string> TestWebDavConnection(ICurrentOptions environment, ISettingsFaultFinder settingsFaultFinder, string url) { if (environment.OutlookFolderType == null) { MessageBox.Show("Please select an Outlook folder to specify the item type for this profile", ConnectionTestCaption); return(url); } var outlookFolderType = environment.OutlookFolderType.Value; StringBuilder errorMessageBuilder = new StringBuilder(); if (!ValidateWebDavUrl(url, errorMessageBuilder, false)) { MessageBox.Show(errorMessageBuilder.ToString(), "The CalDav/CardDav Url is invalid", MessageBoxButtons.OK, MessageBoxIcon.Error); return(url); } var enteredUri = new Uri(url); var webDavClient = environment.CreateWebDavClient(enteredUri); Uri autoDiscoveredUrl; if (ConnectionTester.RequiresAutoDiscovery(enteredUri)) { var autodiscoveryResult = await DoAutoDiscovery(enteredUri, webDavClient, true, true, outlookFolderType); switch (autodiscoveryResult.Status) { case AutoDiscoverResultStatus.UserCancelled: return(url); case AutoDiscoverResultStatus.ResourceSelected: autoDiscoveredUrl = autodiscoveryResult.RessourceUrl; break; case AutoDiscoverResultStatus.NoResourcesFound: var autodiscoveryResult2 = await DoAutoDiscovery(enteredUri.AbsolutePath.EndsWith ("/")?enteredUri : new Uri(enteredUri.ToString() + "/"), webDavClient, false, false, outlookFolderType); switch (autodiscoveryResult2.Status) { case AutoDiscoverResultStatus.UserCancelled: return(url); case AutoDiscoverResultStatus.ResourceSelected: autoDiscoveredUrl = autodiscoveryResult2.RessourceUrl; break; case AutoDiscoverResultStatus.NoResourcesFound: MessageBox.Show("No resources were found via autodiscovery!", ConnectionTestCaption); return(url); default: throw new NotImplementedException(autodiscoveryResult2.Status.ToString()); } break; default: throw new NotImplementedException(autodiscoveryResult.Status.ToString()); } } else { var result = await ConnectionTester.TestConnection(enteredUri, webDavClient); if (result.ResourceType != ResourceType.None) { settingsFaultFinder.FixSynchronizationMode(result); DisplayTestReport( result, environment.SynchronizationMode, environment.SynchronizationModeDisplayName, outlookFolderType); return(url); } else { var autodiscoveryResult = await DoAutoDiscovery(enteredUri, webDavClient, false, false, outlookFolderType); switch (autodiscoveryResult.Status) { case AutoDiscoverResultStatus.UserCancelled: return(url); case AutoDiscoverResultStatus.ResourceSelected: autoDiscoveredUrl = autodiscoveryResult.RessourceUrl; break; case AutoDiscoverResultStatus.NoResourcesFound: var autodiscoveryResult2 = await DoAutoDiscovery(enteredUri, webDavClient, true, true, outlookFolderType); switch (autodiscoveryResult2.Status) { case AutoDiscoverResultStatus.UserCancelled: return(url); case AutoDiscoverResultStatus.ResourceSelected: autoDiscoveredUrl = autodiscoveryResult2.RessourceUrl; break; case AutoDiscoverResultStatus.NoResourcesFound: MessageBox.Show("No resources were found via autodiscovery!", ConnectionTestCaption); return(url); default: throw new NotImplementedException(autodiscoveryResult2.Status.ToString()); } break; default: throw new NotImplementedException(autodiscoveryResult.Status.ToString()); } } } var finalResult = await ConnectionTester.TestConnection(autoDiscoveredUrl, webDavClient); settingsFaultFinder.FixSynchronizationMode(finalResult); DisplayTestReport( finalResult, environment.SynchronizationMode, environment.SynchronizationModeDisplayName, outlookFolderType); return(autoDiscoveredUrl.ToString()); }
public static async Task <string> TestGoogleConnection(ICurrentOptions currentOptions, ISettingsFaultFinder settingsFaultFinder, string url) { if (currentOptions.OutlookFolderType == null) { MessageBox.Show("Please select an Outlook folder to specify the item type for this profile", ConnectionTestCaption); return(url); } var outlookFolderType = currentOptions.OutlookFolderType.Value; StringBuilder errorMessageBuilder = new StringBuilder(); if (!ValidateGoogleEmailAddress(errorMessageBuilder, currentOptions.EmailAddress)) { MessageBox.Show(errorMessageBuilder.ToString(), "The Email Address is invalid", MessageBoxButtons.OK, MessageBoxIcon.Error); return(url); } if (outlookFolderType == OlItemType.olTaskItem) { return(await TestGoogleTaskConnection(currentOptions, errorMessageBuilder, outlookFolderType, url)); } if (outlookFolderType == OlItemType.olContactItem && currentOptions.ServerAdapterType == ServerAdapterType.GoogleContactApi) { return(await TestGoogleContactsConnection(currentOptions, outlookFolderType, url)); } if (!ValidateWebDavUrl(url, errorMessageBuilder, false)) { MessageBox.Show(errorMessageBuilder.ToString(), "The CalDav/CardDav Url is invalid", MessageBoxButtons.OK, MessageBoxIcon.Error); return(url); } var enteredUri = new Uri(url); var webDavClient = currentOptions.CreateWebDavClient(enteredUri); Uri autoDiscoveredUrl; if (ConnectionTester.RequiresAutoDiscovery(enteredUri)) { var autoDiscoveryResult = await DoAutoDiscovery(enteredUri, webDavClient, false, true, outlookFolderType); switch (autoDiscoveryResult.Status) { case AutoDiscoverResultStatus.UserCancelled: return(url); case AutoDiscoverResultStatus.ResourceSelected: autoDiscoveredUrl = autoDiscoveryResult.RessourceUrl; break; default: autoDiscoveredUrl = null; break; } } else { autoDiscoveredUrl = null; } var finalUrl = autoDiscoveredUrl?.ToString() ?? url; var result = await ConnectionTester.TestConnection(new Uri(finalUrl), webDavClient); if (result.ResourceType != ResourceType.None) { settingsFaultFinder.FixSynchronizationMode(result); } if (outlookFolderType == OlItemType.olContactItem) { // Google Addressbook doesn't have any properties. As long as there doesn't occur an exception, the test is successful. MessageBox.Show("Connection test successful.", ConnectionTestCaption); } else { DisplayTestReport( result, currentOptions.SynchronizationMode, currentOptions.SynchronizationModeDisplayName, outlookFolderType); } return(finalUrl); }
public static async Task TestWebDavConnection(ICurrentOptions environment, ISettingsFaultFinder settingsFaultFinder) { if (environment.OutlookFolderType == null) { MessageBox.Show("Please select an Outlook folder to specify the item type for this profile", ConnectionTestCaption); return; } var outlookFolderType = environment.OutlookFolderType.Value; StringBuilder errorMessageBuilder = new StringBuilder(); if (!ValidateWebDavUrl(environment.ServerUrl, errorMessageBuilder, false)) { MessageBox.Show(errorMessageBuilder.ToString(), "The CalDav/CardDav Url is invalid", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var enteredUri = new Uri(environment.ServerUrl); var webDavClient = environment.CreateWebDavClient(); Uri autoDiscoveredUrl; ResourceType autoDiscoveredResourceType; if (ConnectionTester.RequiresAutoDiscovery(enteredUri)) { var autodiscoveryResult = await DoAutoDiscovery(enteredUri, webDavClient, true, true, environment.OutlookFolderType); if (autodiscoveryResult.WasCancelled) { return; } if (autodiscoveryResult.RessourceUrl != null) { autoDiscoveredUrl = autodiscoveryResult.RessourceUrl; autoDiscoveredResourceType = autodiscoveryResult.ResourceType; } else { var autodiscoveryResult2 = await DoAutoDiscovery(enteredUri.AbsolutePath.EndsWith ("/")?enteredUri : new Uri(enteredUri.ToString() + "/"), webDavClient, false, false, environment.OutlookFolderType); if (autodiscoveryResult2.WasCancelled) { return; } if (autodiscoveryResult2.RessourceUrl != null) { autoDiscoveredUrl = autodiscoveryResult2.RessourceUrl; autoDiscoveredResourceType = autodiscoveryResult2.ResourceType; } else { MessageBox.Show("No resources were found via autodiscovery!", ConnectionTestCaption); return; } } } else { var result = await ConnectionTester.TestConnection(enteredUri, webDavClient, ResourceType.None); if (result.ResourceType != ResourceType.None) { settingsFaultFinder.FixSynchronizationMode(result); DisplayTestReport( result, environment.SynchronizationMode, environment.SynchronizationModeDisplayName, outlookFolderType); return; } else { var autodiscoveryResult = await DoAutoDiscovery(enteredUri, webDavClient, false, false, environment.OutlookFolderType); if (autodiscoveryResult.WasCancelled) { return; } if (autodiscoveryResult.RessourceUrl != null) { autoDiscoveredUrl = autodiscoveryResult.RessourceUrl; autoDiscoveredResourceType = autodiscoveryResult.ResourceType; } else { var autodiscoveryResult2 = await DoAutoDiscovery(enteredUri, webDavClient, true, true, environment.OutlookFolderType); if (autodiscoveryResult2.RessourceUrl != null) { autoDiscoveredUrl = autodiscoveryResult2.RessourceUrl; autoDiscoveredResourceType = autodiscoveryResult2.ResourceType; } else { MessageBox.Show("No resources were found via autodiscovery!", ConnectionTestCaption); return; } } } } environment.ServerUrl = autoDiscoveredUrl.ToString(); var finalResult = await ConnectionTester.TestConnection(autoDiscoveredUrl, webDavClient, autoDiscoveredResourceType); settingsFaultFinder.FixSynchronizationMode(finalResult); DisplayTestReport( finalResult, environment.SynchronizationMode, environment.SynchronizationModeDisplayName, outlookFolderType); }