//TODO.. Move this and Commit. I sorta hate it all! internal async Task SwitchCommand(BranchPickerResult result) { if (!result.CreateBranch && !result.Switch) { return; } bool inError = false; var branch = result.BranchInfo; await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); SolutionExtensions.WriteMessageToOutputPane("Branch Operation Started"); if (result.CreateBranch) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); SolutionExtensions.WriteMessageToOutputPane("Creating Branch"); //await status.SetMessage("Creating Branch"); await TaskScheduler.Default; var branchResult = result.Repository.CreateBranch(result.BranchName); if (branchResult.Succeeded) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); SolutionExtensions.WriteMessageToOutputPane("Branch: ' " + branchResult.Item.Name + "' Created"); branch = branchResult.Item; } else { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); inError = true; //status.Hide(); SolutionExtensions.WriteMessageToOutputPane(branchResult.ErrorMessage); MessageBox.Show(branchResult.ErrorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Exclamation); } } if (result.Switch && !inError) { if (branch != null) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); SolutionExtensions.WriteMessageToOutputPane("Switching Branch"); await TaskScheduler.Default; var switchResult = result.Repository.Checkout(branch); if (!switchResult.Succeeded) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); inError = true; SolutionExtensions.WriteMessageToOutputPane(switchResult.ErrorMessage); MessageBox.Show(switchResult.ErrorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Exclamation); } } } if (!inError) { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); SolutionExtensions.WriteMessageToOutputPane("Branch Operation Complete"); await UpdateRepositoryName(); } }
internal async Task OnSwitchCommand(BranchPickerResult result) { await control.SwitchCommand(result); }