Example #1
0
        protected void TestSqlSettingsClick(object sender, EventArgs e)
        {
            if (String.IsNullOrEmpty(textboxSqlDatabase.Text) || String.IsNullOrEmpty(textboxSqlServerPath.Text) ||
                String.IsNullOrEmpty(textboxSqlUsername.Text) || String.IsNullOrEmpty(textboxSqlPassword.Text))
            {
                labelMessage.Text = "You must complete all the SQL configuration fields to test your SQL connectivity";
                return;
            }

            AbstractSqlConfiguration sqlConfig = new MsSqlConfiguration();

            sqlConfig.Database = textboxSqlDatabase.Text;
            sqlConfig.Hostname = textboxSqlServerPath.Text;
            sqlConfig.Username = textboxSqlUsername.Text;
            sqlConfig.Password = textboxSqlPassword.Text;

            ConnectionTester dao = new ConnectionTester(sqlConfig.buildConnectionString());

            dto.BoolTO result = dao.canWrite();
            if (result.trueOrFalse)
            {
                labelMessage.Text = "You were able to write to your database with these SQL settings. Good job!";
            }
            else if (result.fault != null)
            {
                labelMessage.Text = "<p>MDWS failed to write to your database with those SQL settings. Maybe the " +
                                    "following error will give you a clue why:</p>" + result.fault.message;
            }
            else
            {
                labelMessage.Text = "MDWS couldn't successfully connect to your database with those parameters " +
                                    "but no error was reported. You got yourself a real pickle there.";
            }
        }
 public static ConnectionTester GetInstance(GameObject go)
 {
     if (instance == null)
     {
         instance = go.AddComponent <ConnectionTester>();
     }
     return(instance);
 }
Example #3
0
 private void Test_Conn()
 {
     if (!ConnectionTester.TestConnection())
     {
         var a = NavigationService.GetNavigationService(this);
         a.Navigate((Uri)(new Uri("Pages/waitConnection.xaml", UriKind.Relative)));
     }
 }
Example #4
0
        private void Start()
        {
            // Initialize the communication channel with the host
            ApplicationBridge.Initialize();

            Panel rootPanel = new Grid();

            RootVisual = rootPanel;

            // Test the connection speed and launch the webviewer once it's completed
            ConnectionTester.TestConnection(new Action(StartWebViewer));
        }
    void Start()
    {
        _connectionTester = ConnectionTester
                            .GetInstance(gameObject)
                            .ipToTest("www.google.com");

        ButtonTestInternet.onClick.AddListener(() =>
        {
            ShowFeedback("Starting test");
            _connectionTester.TestInternet(hasInternet =>
            {
                ShowFeedback($"Has internet connection: {hasInternet}");
            });
        });
    }
Example #6
0
        public async Task <Uri> AddResource(string name, bool useRandomUri)
        {
            var homeSetUri = await GetCalendarHomeSetUriOrNull(ConnectionTester.RequiresAutoDiscovery(_serverUrl)) ?? _serverUrl;

            var resourceName = useRandomUri ? Guid.NewGuid() + "/" : name + "/";

            var newResourceUri = new Uri(homeSetUri, resourceName);
            await _webDavClient.ExecuteWebDavRequestAndReturnResponseHeaders(
                newResourceUri,
                "MKCOL",
                null,
                null,
                null,
                "application/xml",
                @"<?xml version='1.0'?>
                    <D:mkcol xmlns:D=""DAV:"" xmlns:C=""urn:ietf:params:xml:ns:caldav"">
                      <D:set>
                        <D:prop>
                          <D:resourcetype>
                            <D:collection/>
                            <C:calendar/>
                          </D:resourcetype>
                        </D:prop>
                      </D:set>
                    </D:mkcol>"
                );

            await _webDavClient.ExecuteWebDavRequestAndReturnResponseHeaders(
                newResourceUri,
                "PROPPATCH",
                0,
                null,
                null,
                "application/xml",
                string.Format(
                    @"<?xml version='1.0'?>
                      <D:propertyupdate xmlns:D=""DAV:"">
                        <D:set>
                          <D:prop>
                              <D:displayname>{0}</D:displayname>
                          </D:prop>
                        </D:set>
                      </D:propertyupdate>
                 ", name)
                );

            return(newResourceUri);
        }
Example #7
0
        private bool ValidateConnectionString(string connectionStringName)
        {
            var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;

            var connectionIsValid = string.IsNullOrEmpty(connectionString) || ConnectionTester.IsServerConnected(connectionString);

            if (!connectionIsValid)
            {
                Console.WriteLine();
                Console.WriteLine("  Execution aborted!");
                Console.WriteLine($"  The {connectionStringName} connection string is not valid.");
                Console.WriteLine();
            }

            return(connectionIsValid);
        }
Example #8
0
    void Awake()
    {
        if (_instance != null && _instance != this)
        {
            Destroy(this.gameObject);
            return;
        }
        else
        {
            // just move it to the root
            this.transform.parent = null;
            _instance             = this;
        }


        DontDestroyOnLoad(this.gameObject);
    }
Example #9
0
 void beginSetupError()
 {
     settings = SetupManager.GetSettings();
     string result = ConnectionTester.GetUpgradeOption();
     if (result.StartsWith("~"))
     {
         RabSetupMode.Items[1].Text = " " + result.Substring(1);
         RabSetupMode.Items[1].Enabled = true;
     }
     else
     {
         RabSetupMode.Items[1].Text = " " + result;
         RabSetupMode.Items[1].Enabled = false;
     }
     RabSetupMode.SelectedIndex = 0;
     SetVisible(Step.Fifth);
 }
Example #10
0
    public void ProcessInfo()
    {
        var myText = inpCaseNumber.text;

        if (string.IsNullOrEmpty(myText))
        {
            Debug.LogWarning("Input alanı boş geçilemez.");
            ShowFeedback("Input alanı boş geçilemez.");
        }
        else
        {
            var newCase = UiManager.Instance.CreateCase(myText, "ONENT");

            ISearchService searchService = new SearchService(new Repository <SearchLog>(UiManager.Instance.DataContext));

            _connectionTester = ConnectionTester
                                .GetInstance(gameObject)
                                .ipToTest("www.google.com");


            ShowFeedback("Starting test");
            // Internet connection checked basically
            //if (Application.internetReachability == NetworkReachability.NotReachable)
            //{
            //    newCase.Text = "Internet Connection is not available";
            //}
            _connectionTester.TestInternet(hasInternet =>
            {
                if (hasInternet)
                {
                    searchService.InsertSearchLog(newCase);

                    locationPanel.gameObject.SetActive(true);
                }
                ShowFeedback($"Has internet connection: {hasInternet}");
            });
        }

        void ShowFeedback(string text)
        {
            FeedbackText.text = text;
        }
    }
Example #11
0
        private async Task RunAllPendingJobs()
        {
            // Monitor cannot be used here, since Monitor allows recursive enter for a thread
            if (Interlocked.CompareExchange(ref _isRunning, 1, 0) == 0)
            {
                try
                {
                    if (_profile.CheckIfOnline && !await ConnectionTester.IsOnline(_profile.ProxyOptionsOrNull))
                    {
                        s_logger.WarnFormat("Skipping synchronization profile '{0}' (Id: '{1}') because network is not available", _profile.ProfileName, _profileId);
                        return;
                    }

                    while (_fullSyncPending || _pendingOutlookItems.Count > 0)
                    {
                        if (_fullSyncPending)
                        {
                            _fullSyncPending = false;
                            Thread.MemoryBarrier(); // should not be required because there is just one thread entering multiple times
                            await RunAndRescheduleNoThrow();
                        }

                        if (_pendingOutlookItems.Count > 0)
                        {
                            var itemsToSync = _pendingOutlookItems.Values.ToArray();
                            _pendingOutlookItems.Clear();
                            if (s_logger.IsDebugEnabled)
                            {
                                s_logger.Debug($"Partial sync: Going to sync '{itemsToSync.Length}' pending items ( {string.Join(", ", itemsToSync.Select(id => id.EntryId))} ).");
                            }

                            Thread.MemoryBarrier(); // should not be required because there is just one thread entering multiple times
                            await RunPartialNoThrow(itemsToSync);
                        }
                    }
                }
                finally
                {
                    Interlocked.Exchange(ref _isRunning, 0);
                }
            }
        }
        //Server=KRK; Initial Catalog=NorthWind;User Id=sa; Password=123123;
        #region [ Test method ]

        private void Test(object sender, EventArgs e)
        {
            if (cmbxConnectionType.SelectedIndex == -1)
            {
                MessageBox.Show("Please, Choose a connectionType.");
                return;
            }

            if (true == string.IsNullOrWhiteSpace(txtConnStr.Text))
            {
                MessageBox.Show(
                    "Connection string can not be empty.",
                    "Warning!..");
                return;
            }

            ConnectionTypes connType = (ConnectionTypes)cmbxConnectionType.Items[cmbxConnectionType.SelectedIndex];

            ConnectionTester.TestConnection(connType, txtConnStr.Text);
            MessageBox.Show(string.Format("{0}", Error), "Result");
        }
Example #13
0
 private void Page_Loaded(object sender, RoutedEventArgs e)
 {
     WaitConn = new Thread(new ThreadStart(delegate()
     {
         while (true)
         {
             if (ConnectionTester.TestConnection())
             {
                 Application.Current.Dispatcher.Invoke((Action) delegate()
                 {
                     var a = NavigationService.GetNavigationService(this);
                     a.Navigate((Uri)(new Uri("Pages/main.xaml", UriKind.Relative)));
                 });
                 WaitConn.Abort();
             }
             Thread.Sleep(1000);
         }
     }));
     WaitConn.IsBackground = true;
     WaitConn.Name         = "Ожидание соединения";
     WaitConn.Start();
 }
Example #14
0
        public void ConnectionPointsAmount()
        {
            ManualResetEvent sentinel = new ManualResetEvent(false);

            userFactory.SelectType(UserType.ConnectionTester);

            Console.Write("Threads amount: ");
            int threadsAmount = int.Parse(Console.ReadLine());

            Console.Write("Time, in milliseconds, while connection will be held: ");
            int time = int.Parse(Console.ReadLine());

            for (int index = 0; index < threadsAmount; index++)
            {
                ConnectionTester tester = userFactory.Get() as ConnectionTester;

                tester.Initialize(index, time, ref sentinel);
                tester.Work();
            }

            sentinel.Set();
        }
        private async Task RunAllPendingJobs()
        {
            if (_checkIfOnline && !ConnectionTester.IsOnline())
            {
                s_logger.WarnFormat("Skipping synchronization profile '{0}' (Id: '{1}') because network is not available", _profileName, _profileId);
                return;
            }

            // Monitor cannot be used here, since Monitor allows recursive enter for a thread
            if (Interlocked.CompareExchange(ref _isRunning, 1, 0) == 0)
            {
                try
                {
                    while (_fullSyncPending || _pendingOutlookItems.Count > 0)
                    {
                        if (_fullSyncPending)
                        {
                            _fullSyncPending = false;
                            Thread.MemoryBarrier(); // should not be required because there is just one thread entering multiple times
                            await RunAndRescheduleNoThrow();
                        }

                        if (_pendingOutlookItems.Count > 0)
                        {
                            var itemsToSync = _pendingOutlookItems.ToArray();
                            _pendingOutlookItems.Clear();
                            Thread.MemoryBarrier(); // should not be required because there is just one thread entering multiple times
                            await RunIfResponsibleNoThrow(itemsToSync);
                        }
                    }
                }
                finally
                {
                    Interlocked.Exchange(ref _isRunning, 0);
                }
            }
        }
        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;
            }
        }
        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());
        }
Example #18
0
        public async Task <string> TestGoogleConnection(OptionsModel options, string url)
        {
            if (options.SelectedFolderOrNull == null)
            {
                MessageBox.Show(Strings.Get($"Please select an Outlook folder to specify the item type for this profile"), ConnectionTestCaption);
                return(url);
            }

            var outlookFolderType = options.SelectedFolderOrNull.DefaultItemType;

            StringBuilder errorMessageBuilder = new StringBuilder();

            if (!ValidateEmailAddress(errorMessageBuilder, options.EmailAddress, false))
            {
                MessageBox.Show(errorMessageBuilder.ToString(), Strings.Get($"The Email address is invalid"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(url);
            }

            if (outlookFolderType == OlItemType.olTaskItem)
            {
                return(await TestGoogleTaskConnection(options, errorMessageBuilder, outlookFolderType, url));
            }

            if (outlookFolderType == OlItemType.olContactItem && options.UseGoogleNativeApi)
            {
                return(await TestGoogleContactsConnection(options, outlookFolderType, url));
            }

            if (!ValidateWebDavUrl(url, errorMessageBuilder, false))
            {
                MessageBox.Show(errorMessageBuilder.ToString(), Strings.Get($"The CalDav/CardDav URL is invalid"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(url);
            }

            var enteredUri   = new Uri(url);
            var webDavClient = options.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)
            {
                FixSynchronizationMode(options, result);
                FixWebDavCollectionSync(options, 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(Strings.Get($"Connection test successful."), ConnectionTestCaption);
            }
            else
            {
                DisplayTestReport(
                    result,
                    options.SynchronizationMode,
                    _enumDisplayNameProvider.Get(options.SynchronizationMode),
                    outlookFolderType);
            }

            return(finalUrl);
        }
Example #19
0
        public async Task <string> TestWebDavConnection(OptionsModel options)
        {
            string url = options.CalenderUrl;

            if (options.SelectedFolderOrNull == null)
            {
                MessageBox.Show(Strings.Get($"Please select an Outlook folder to specify the item type for this profile"), ConnectionTestCaption);
                return(url);
            }

            var outlookFolderType = options.SelectedFolderOrNull.DefaultItemType;

            string        serverUrl           = url;
            StringBuilder errorMessageBuilder = new StringBuilder();

            if (string.IsNullOrEmpty(url) && (!string.IsNullOrEmpty(options.EmailAddress) || !string.IsNullOrEmpty(options.UserName)))
            {
                var lookupEmail = !string.IsNullOrEmpty(options.EmailAddress) ? options.EmailAddress : options.UserName;

                if (!ValidateEmailAddress(errorMessageBuilder, lookupEmail, true))
                {
                    MessageBox.Show(errorMessageBuilder.ToString(), Strings.Get($"The Email address is invalid"),
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(url);
                }

                bool success;
                serverUrl = DoSrvLookup(lookupEmail, outlookFolderType, out success);
            }


            if (!ValidateWebDavUrl(serverUrl, errorMessageBuilder, false))
            {
                MessageBox.Show(errorMessageBuilder.ToString(), Strings.Get($"The CalDav/CardDav URL is invalid"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(url);
            }

            var enteredUri   = new Uri(serverUrl);
            var webDavClient = options.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(Strings.Get($"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)
                {
                    FixSynchronizationMode(options, result);
                    FixWebDavCollectionSync(options, result);
                    UpdateServerEmailAndSchedulingSettings(options, result);

                    DisplayTestReport(
                        result,
                        options.SynchronizationMode,
                        _enumDisplayNameProvider.Get(options.SynchronizationMode),
                        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(Strings.Get($"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);

            FixSynchronizationMode(options, finalResult);
            FixWebDavCollectionSync(options, finalResult);
            UpdateServerEmailAndSchedulingSettings(options, finalResult);

            DisplayTestReport(
                finalResult,
                options.SynchronizationMode,
                _enumDisplayNameProvider.Get(options.SynchronizationMode),
                outlookFolderType);

            return(autoDiscoveredUrl.ToString());
        }
Example #20
0
        //测试 安装模式
        void ToFourthNext_Click(object sender, EventArgs e)
        {
            SetupManager.StepChecker = 1;
            Settings setting = Settings.Current;
#if SQLSERVER


            setting.IServerAddress = TextGetter(GetSqlServerAddress());
            setting.IDatabase = TextGetter(IdMaxDatabase.Text.Trim(' ', '[', ']'));
            setting.IsIWindows = ThirdIsWindows.SelectedValue == "0" ? true : false;
            if (!setting.IsIWindows)
            {
                setting.IUserID = TextGetter(IdMaxUserID.Text);

                if (IdMaxPassword.Text != UseOldPassword)
                    setting.IPassword = TextGetter(IdMaxPassword.Text);
                else
                {
                    setting.IPassword = oldPassword;
                }
            }

            setting.DynamicCompress = DynamicCompress.Checked;

            setting.StaticCompress = StaticCompress.Checked;

            setting.Licence = Licence.Text;

            string result = ConnectionTester.Check();

            if (string.IsNullOrEmpty(result))
            {
                settings = SetupManager.GetSettings();
                result = ConnectionTester.GetUpgradeOption();
                if (result.IndexOf(" 3.") > 0 || result.IndexOf(" 2.") > 0)
                {
                    RabSetupMode.Items[0].Enabled = false;
                    RabSetupMode.Items[1].Enabled = false;
                    if (result.StartsWith("~"))
                    {
                        RabSetupMode.Items[1].Text = " " + result.Substring(1);
                        //RabSetupMode.SelectedIndex = 1;
                    }
                    else
                    {
                        RabSetupMode.Items[1].Text = " " + result;
                        //RabSetupMode.SelectedIndex = 0;
                    }
                    ToFifthNext.Enabled = false;
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "ToFourth_ClickError", "alert('请先升级到4.2.3版本');", true);
                    SetVisible(Step.Fifth);
                }
                else
                {
                    if (result.StartsWith("~"))
                    {
                        RabSetupMode.Items[1].Text = " " + result.Substring(1);
                        RabSetupMode.Items[1].Enabled = true;
                        RabSetupMode.SelectedIndex = 1;
                    }
                    else
                    {
                        RabSetupMode.Items[1].Text = " " + result;
                        RabSetupMode.Items[1].Enabled = false;
                        RabSetupMode.SelectedIndex = 0;
                    }
                    SetVisible(Step.Fifth);
                }
            }
            else
            {
                SetVisible(Step.Third);
                Page.ClientScript.RegisterStartupScript(this.GetType(), "ToFourth_ClickError", "alert('" + Globals.SafeJS(result) + "');", true);
            }
#endif
#if SQLITE
            
            setting.BbsMaxFilePath = bbsMaxFilePath.Text;
            setting.IdMaxFilePath = idMaxFilePath.Text;
            RabSetupMode.Items[1].Enabled = false;

            Regex reg = new Regex(@"\\.*?", RegexOptions.IgnoreCase);// /d/bbsmax/bbsmax.config
            string[] array = null;
            if (reg.IsMatch(bbsMaxFilePath.Text))
                array = reg.Split(bbsMaxFilePath.Text);
            setting.BbsMaxDatabase = array[array.Length - 1];

            if (reg.IsMatch(idMaxFilePath.Text))
                array = reg.Split(idMaxFilePath.Text);
            setting.IdMaxDatabase = array[array.Length - 1];
            string result = string.Empty;

            if (ConnectionTester.IsSqlLiteMaxExists())//该数据库是否存在
            {
                settings = SetupManager.GetSettings();
                result = ConnectionTester.GetUpgradeOption();
                if (result.StartsWith("~"))
                {
                    RabSetupMode.Items[1].Text = " " + result.Substring(1);
                    RabSetupMode.Items[1].Enabled = true;
                    RabSetupMode.SelectedIndex = 1;
                }
                else
                {
                    RabSetupMode.Items[1].Text = " " + result;
                    RabSetupMode.Items[1].Enabled = false;
                    RabSetupMode.SelectedIndex = 0;
                }
                SetVisible(Step.Fifth);
            }
            else
            {
                RabSetupMode.SelectedIndex = 0;
                SetVisible(Step.Fifth);
            }
#endif
        }
Example #21
0
        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);
            }
        }
Example #22
0
        private void step3_Next_Click(object sender, EventArgs e)
        {
            webSite.Focus();
            step3_Next.Enabled = false;
            step3_Prev.Enabled = false;
            step4_Next.Enabled = true;
            step4_Prev.Enabled = true;
            Settings setting = Settings.Current;

#if SQLSERVER
            setting.IServerAddress = address.Text.Trim();
            setting.IDatabase      = dbName.Text.Trim(' ', '[', ']');
            setting.IsIWindows     = false;
            if (!setting.IsIWindows)
            {
                setting.IUserID   = userName.Text.Trim();
                setting.IPassword = dbPwd.Text.Trim();
            }

            string result = ConnectionTester.Check();

            if (string.IsNullOrEmpty(result))
            {
                settings = SetupManager.GetSettings();
                result   = ConnectionTester.GetUpgradeOption();
                if (result.StartsWith("~"))//修改安装
                {
                    changeInstall.Text    = result.Substring(1);
                    changeInstall.Enabled = true;
                    changeInstall.Checked = true;
                    webSite.Text          = settings.SiteName;
                    webSite.Enabled       = false;
                    webUrl.Text           = settings.SiteUrl;
                    webUrl.Enabled        = false;
                    bbsName.Text          = settings.BBSName;
                    bbsName.Enabled       = false;
                    //bbsUrl.Text = settings.BBSUrl;
                    //bbsUrl.Enabled = false;
                    adminName.Text    = settings.AdminName;
                    adminName.Enabled = false;
                    label23.Visible   = false;
                    adminPwd.Visible  = false;
                    //adminNickName.Text = settings.AdminNickName;
                    //adminNickName.Enabled = false;
                }
                else
                {
                    adminName.Text     = "admin";
                    adminNickName.Text = "admin";
                    //ip或主机头..虚拟目录名称?多级虚拟目录..
                    string port = SiteInfo.Current.Port == "80" ? "" : ":" + SiteInfo.Current.Port;
                    string ip   = SiteInfo.Current.IP == "" ? "localhost" : SiteInfo.Current.IP;
                    string host = SiteInfo.Current.Host == "" ? ip + port : SiteInfo.Current.Host + port;
                    webUrl.Text = string.Format("http://{0}", host);
                    //bbsUrl.Text = string.Format("http://{0}/{1}", host, SiteInfo.Current.VirtualName);
                    //
                    changeInstall.Text    = result;
                    changeInstall.Enabled = false;
                    newInstall.Checked    = true;
                }
                this.tabControl1.SelectedIndex = 3;
            }
            else
            {
                step3_Next.Enabled = true;
                step3_Prev.Enabled = true;
                MessageBox.Show("连接数据库失败", "安装向导", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
#endif
#if SQLITE
            setting.BbsMaxFilePath = bbsMaxFilePath.Text;
            setting.IdMaxFilePath  = idMaxFilePath.Text;

            adminName.Text     = "admin";
            adminNickName.Text = "admin";
            //ip或主机头..虚拟目录名称?多级虚拟目录..
            string port = SiteInfo.Current.Port == "80" ? "" : ":" + SiteInfo.Current.Port;
            string ip   = SiteInfo.Current.IP == "" ? "localhost" : SiteInfo.Current.IP;
            string host = SiteInfo.Current.Host == "" ? ip + port : SiteInfo.Current.Host + port;
            webUrl.Text = string.Format("http://{0}", host);
            bbsUrl.Text = string.Format("http://{0}/{1}", host, SiteInfo.Current.VirtualName);

            Regex    reg   = new Regex(@"\\.*?", RegexOptions.IgnoreCase);// /d/bbsmax/bbsmax.config
            string[] array = null;
            if (reg.IsMatch(bbsMaxFilePath.Text))
            {
                array = reg.Split(bbsMaxFilePath.Text);
            }
            setting.BbsMaxDatabase = array[array.Length - 1];

            if (reg.IsMatch(idMaxFilePath.Text))
            {
                array = reg.Split(idMaxFilePath.Text);
            }
            setting.IdMaxDatabase = array[array.Length - 1];
            string result = string.Empty;

            if (ConnectionTester.IsSqlLiteMaxExists())//该数据库是否存在
            {
                settings = SetupManager.GetSettings();
                result   = ConnectionTester.GetUpgradeOption();
                if (result.StartsWith("~"))
                {
                    changeInstall.Text    = result.Substring(1);
                    changeInstall.Enabled = true;
                    changeInstall.Checked = true;
                    webSite.Text          = settings.SiteName;
                    webSite.Enabled       = false;
                    webUrl.Text           = settings.SiteUrl;
                    webUrl.Enabled        = false;
                    bbsName.Text          = settings.BBSName;
                    bbsName.Enabled       = false;
                    bbsUrl.Text           = settings.BBSUrl;
                    bbsUrl.Enabled        = false;
                    adminName.Text        = settings.AdminName;
                    adminName.Enabled     = false;
                    label23.Visible       = false;
                    adminPwd.Visible      = false;
                    adminNickName.Text    = settings.AdminNickName;
                    adminNickName.Enabled = false;
                }
                else
                {
                    changeInstall.Text    = result;
                    changeInstall.Enabled = false;
                    newInstall.Checked    = true;
                }
                this.tabControl1.SelectedIndex = 3;
            }
            else
            {
                changeInstall.Enabled = false;
                newInstall.Checked    = true;

                this.tabControl1.SelectedIndex = 3;
            }
#endif
        }
        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);
        }
Example #24
0
        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);
        }