private void ButtonCheckConnection_Click(object sender, System.Windows.RoutedEventArgs e) { if (!IsValid()) { return; } var crmConnection = new CrmConnection { Name = textboxName.Text, Password = comboBoxType.Text == "ClientSecret" ? textboxPassword.Password : EncryptDecrypt.EncryptString(textboxPassword.Password), Type = comboBoxType.Text, Url = textboxUrl.Text, UserName = textboxUser.Text }; stackPanelForm.IsEnabled = false; progressBar.Visibility = System.Windows.Visibility.Visible; _ = Task.Factory.StartNew(() => { var crmServiceClient = XrmHelper.IsConnected(crmConnection); ThreadHelper.JoinableTaskFactory.Run(async delegate { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); stackPanelForm.IsEnabled = true; progressBar.Visibility = System.Windows.Visibility.Hidden; }); if (crmServiceClient != null) { var devKitConnections = VsixHelper.GetDevKitConnections(); devKitConnections.DefaultCrmConnection = crmConnection.Name; devKitConnections.CrmConnections.Add(crmConnection); VsixHelper.SaveDevKitConnections(devKitConnections); LoadConnections(); ClearData(); } else { ThreadHelper.JoinableTaskFactory.Run(async delegate { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); await VS.MessageBox.ShowErrorAsync(@"Something wrong with your connection. Please try it again"); }); } }, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default); }
private void ButtonOK_Click(object sender, System.Windows.RoutedEventArgs e) { if (IsOOBConnection) { DialogResult = true; Close(); } else { stackPanelForm.IsEnabled = false; progressBar.Visibility = System.Windows.Visibility.Visible; var selectedCrmConnection = comboBoxSavedConnection.SelectedItem as CrmConnection; _ = Task.Factory.StartNew(() => { CrmServiceClient = XrmHelper.IsConnected(selectedCrmConnection); ThreadHelper.JoinableTaskFactory.Run(async delegate { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); DialogResult = true; Close(); }); }, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default); } }