public OptionsDisplayControl( NameSpace session, Func <Guid, string> profileDataDirectoryFactory, bool fixInvalidSettings) { ISettingsFaultFinder faultFinder; InitializeComponent(); if (fixInvalidSettings) { faultFinder = new SettingsFaultFinder(_syncSettingsControl); } else { faultFinder = NullSettingsFaultFinder.Instance; } _serverSettingsControl.Initialize(faultFinder, this); _outlookFolderControl.Initialize(session, faultFinder); _profileDataDirectoryFactory = profileDataDirectoryFactory; _profileNameTextBox.TextChanged += _profileNameTextBox_TextChanged; _inactiveCheckBox.CheckedChanged += _inactiveCheckBox_CheckedChanged; _outlookFolderControl.FolderChanged += OutlookFolderControl_FolderChanged; _configurationFormFactory = OptionTasks.CreateConfigurationFormFactory(_serverSettingsControl); }
public bool Validate(StringBuilder errorMessageBuilder) { bool result = OptionTasks.ValidateCalendarUrl(_serverSettingsControl.CalendarUrl, errorMessageBuilder, true); result &= _outlookFolderControl.Validate(errorMessageBuilder); result &= OptionTasks.ValidateEmailAddress(errorMessageBuilder, _serverSettingsControl.EmailAddress); return(result); }
private void _okButton_Click(object sender, EventArgs e) { StringBuilder errorMessageBuilder = new StringBuilder(); if (OptionTasks.ValidateCategoryName(_categoryTextBox.Text, errorMessageBuilder)) { DialogResult = DialogResult.OK; } else { MessageBox.Show(errorMessageBuilder.ToString(), "The category name is invalid", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void _advancedSettingsButton_Click(object sender, EventArgs e) { using (AdvancedOptionsForm advancedOptionsForm = new AdvancedOptionsForm( c => OptionTasks.CoreceMappingConfiguration(_outlookFolderControl.OutlookFolderType, c), _configurationFormFactory.Value)) { advancedOptionsForm.Options = _advancedOptions; if (advancedOptionsForm.ShowDialog() == DialogResult.OK) { _advancedOptions = advancedOptionsForm.Options; } } }
private async Task TestServerConnection() { _testConnectionButton.Enabled = false; try { StringBuilder errorMessageBuilder = new StringBuilder(); if (!OptionTasks.ValidateCalendarUrl(_calenderUrlTextBox.Text, errorMessageBuilder, false)) { MessageBox.Show(errorMessageBuilder.ToString(), "The CalDav/CardDav Url is invalid", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var enteredUri = new Uri(_calenderUrlTextBox.Text); var webDavClient = CreateWebDavClient(); Uri autoDiscoveredUrl; ResourceType autoDiscoveredResourceType; if (ConnectionTester.RequiresAutoDiscovery(enteredUri)) { var autodiscoveryResult = await OptionTasks.DoAutoDiscovery(enteredUri, webDavClient, true, true, _dependencies.OutlookFolderType); if (autodiscoveryResult.WasCancelled) { return; } if (autodiscoveryResult.RessourceUrl != null) { autoDiscoveredUrl = autodiscoveryResult.RessourceUrl; autoDiscoveredResourceType = autodiscoveryResult.ResourceType; } else { var autodiscoveryResult2 = await OptionTasks.DoAutoDiscovery(enteredUri.AbsolutePath.EndsWith ("/")?enteredUri : new Uri(enteredUri.ToString() + "/"), webDavClient, false, false, _dependencies.OutlookFolderType); if (autodiscoveryResult2.WasCancelled) { return; } if (autodiscoveryResult2.RessourceUrl != null) { autoDiscoveredUrl = autodiscoveryResult2.RessourceUrl; autoDiscoveredResourceType = autodiscoveryResult2.ResourceType; } else { return; } } } else { var result = await ConnectionTester.TestConnection(enteredUri, webDavClient, ResourceType.None); if (result.ResourceType != ResourceType.None) { _settingsFaultFinder.FixSynchronizationMode(result); OptionTasks.DisplayTestReport( result, _dependencies.SelectedSynchronizationModeRequiresWriteableServerResource, _dependencies.SelectedSynchronizationModeDisplayName, _dependencies.OutlookFolderType); return; } else { var autodiscoveryResult = await OptionTasks.DoAutoDiscovery(enteredUri, webDavClient, false, false, _dependencies.OutlookFolderType); if (autodiscoveryResult.WasCancelled) { return; } if (autodiscoveryResult.RessourceUrl != null) { autoDiscoveredUrl = autodiscoveryResult.RessourceUrl; autoDiscoveredResourceType = autodiscoveryResult.ResourceType; } else { var autodiscoveryResult2 = await OptionTasks.DoAutoDiscovery(enteredUri, webDavClient, true, true, _dependencies.OutlookFolderType); if (autodiscoveryResult2.RessourceUrl != null) { autoDiscoveredUrl = autodiscoveryResult2.RessourceUrl; autoDiscoveredResourceType = autodiscoveryResult2.ResourceType; } else { return; } } } } _calenderUrlTextBox.Text = autoDiscoveredUrl.ToString(); var finalResult = await ConnectionTester.TestConnection(autoDiscoveredUrl, webDavClient, autoDiscoveredResourceType); _settingsFaultFinder.FixSynchronizationMode(finalResult); OptionTasks.DisplayTestReport( finalResult, _dependencies.SelectedSynchronizationModeRequiresWriteableServerResource, _dependencies.SelectedSynchronizationModeDisplayName, _dependencies.OutlookFolderType); ; } catch (Exception x) { s_logger.Error("Exception while testing the connection.", x); string message = null; for (Exception ex = x; ex != null; ex = ex.InnerException) { message += ex.Message + Environment.NewLine; } MessageBox.Show(message, OptionTasks.ConnectionTestCaption); } finally { _testConnectionButton.Enabled = true; } }