public static IAsyncOperation ApplyStash(Stash s) { MessageDialogProgressMonitor monitor = new MessageDialogProgressMonitor(true, false, false, true); var statusTracker = IdeApp.Workspace.GetFileStatusTracker(); ThreadPool.QueueUserWorkItem(delegate { try { NGit.Api.MergeCommandResult result; using (var gm = new GitMonitor(monitor)) result = s.Apply(gm); ReportStashResult(monitor, result); } catch (Exception ex) { string msg = GettextCatalog.GetString("Stash operation failed."); monitor.ReportError(msg, ex); } finally { monitor.Dispose(); statusTracker.NotifyChanges(); } }); return(monitor.AsyncOperation); }
public static void SwitchToBranch(GitRepository repo, string branch) { MessageDialogProgressMonitor monitor = new MessageDialogProgressMonitor(true, false, false, true); try { IdeApp.Workbench.AutoReloadDocuments = true; IdeApp.Workbench.LockGui(); System.Threading.ThreadPool.QueueUserWorkItem(delegate { try { repo.SwitchToBranch(monitor, branch); } catch (Exception ex) { monitor.ReportError("Branch switch failed", ex); } finally { monitor.Dispose(); } }); monitor.AsyncOperation.WaitForCompleted(); } finally { IdeApp.Workbench.AutoReloadDocuments = false; IdeApp.Workbench.UnlockGui(); } }
public static IAsyncOperation ApplyStash(GitRepository repo, int s) { var monitor = new MessageDialogProgressMonitor(true, false, false, true); var statusTracker = IdeApp.Workspace.GetFileStatusTracker(); ThreadPool.QueueUserWorkItem(delegate { try { ReportStashResult(repo.ApplyStash(monitor, s)); } catch (Exception ex) { string msg = GettextCatalog.GetString("Stash operation failed."); monitor.ReportError(msg, ex); } finally { monitor.Dispose(); statusTracker.Dispose(); } }); return(monitor.AsyncOperation); }
public static Task <bool> ApplyStash(GitRepository repo, int s) { var monitor = new MessageDialogProgressMonitor(true, false, false, true); var t = Task.Run(delegate { try { var res = repo.ApplyStash(monitor, s); ReportStashResult(repo, res, null); return(res == StashApplyStatus.Applied); } catch (Exception ex) { string msg = GettextCatalog.GetString("Stash operation failed."); monitor.ReportError(msg, ex); return(false); } finally { monitor.Dispose(); } }); return(t); }
public static async Task <bool> SwitchToBranchAsync(GitRepository repo, string branch) { var monitor = new MessageDialogProgressMonitor(true, false, false, true); try { IdeApp.Workbench.AutoReloadDocuments = true; IdeApp.Workbench.LockGui(); try { return(await repo.SwitchToBranchAsync(monitor, branch)); } catch (Exception ex) { monitor.ReportError(GettextCatalog.GetString("Branch switch failed"), ex); return(false); } finally { monitor.Dispose(); } } finally { IdeApp.Workbench.AutoReloadDocuments = false; IdeApp.Workbench.UnlockGui(); } }
public static void SwitchToBranch(GitRepository repo, string branch) { var monitor = new MessageDialogProgressMonitor(true, false, false, true); try { IdeApp.Workbench.AutoReloadDocuments = true; IdeApp.Workbench.LockGui(); Task.Run(delegate { try { repo.SwitchToBranch(monitor, branch); } catch (Exception ex) { monitor.ReportError("Branch switch failed", ex); } finally { monitor.Dispose(); } }).Wait(); } finally { IdeApp.Workbench.AutoReloadDocuments = false; IdeApp.Workbench.UnlockGui(); } }
async void OnContinueButtonClicked(object sender, EventArgs e) { if (_controller.SelectedSample == null) { return; } ProgressMonitor progressMonitor = new MessageDialogProgressMonitor(true, false, true, true); Loading(true); var projectPath = await _controller.DownloadSampleAsync(progressMonitor); Loading(false); if (string.IsNullOrWhiteSpace(projectPath)) { var errorMessage = "An error has occurred downloading the sample."; progressMonitor.ReportError(errorMessage); MessageService.ShowError(errorMessage); } else { progressMonitor.ReportSuccess("Sample downloaded."); } progressMonitor.EndTask(); progressMonitor.Dispose(); bool downloaded = !string.IsNullOrWhiteSpace(projectPath); if (downloaded) { Respond(Command.Ok); Close(); await _controller.OpenSolutionAsync(projectPath); } }