Example #1
0
        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);
        }
Example #2
0
        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();
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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();
            }
        }
Example #6
0
        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();
            }
        }
Example #7
0
        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);
            }
        }