private void logWorkWorker(Action action, Action finished, bool closeDialogOnFinish)
 {
     try {
         status.setInfo("Logging work for issue " + issue.Key + "...");
         action();
         status.setInfo("Logged work for issue " + issue.Key);
         UsageCollector.Instance.bumpJiraIssuesOpen();
         JiraIssue updatedIssue = facade.getIssue(issue.Server, issue.Key);
         parent.safeInvoke(new MethodInvoker(() => {
             model.updateIssue(updatedIssue);
             if (activeIssueManager.isActive(issue))
             {
                 activeIssueManager.resetTimeSpent();
             }
         }));
     } catch (Exception e) {
         status.setError("Failed to log work for issue " + issue.Key, e);
     }
     parent.safeInvoke(new MethodInvoker(() => {
         if (closeDialogOnFinish)
         {
             Close();
         }
         if (finished != null)
         {
             finished();
         }
     }));
 }
예제 #2
0
        private void dropActionWorker(string issueKey, string serverGuid, bool add)
        {
            try {
                if (!server.GUID.ToString().Equals(serverGuid))
                {
                    throw new Exception("Only issues form server " + server.Name + "are accepted");
                }
                JiraIssue issue = facade.getIssue(server, issueKey);
                if (issue == null)
                {
                    throw new Exception("Issue " + issueKey + " not found on specified server");
                }
                worker.Action(issue, add);
                issue = facade.getIssue(server, issueKey);

                Invoke(new MethodInvoker(() => updateModelAndResetToInitialState(issue, add)));
            } catch (Exception e) {
                Invoke(new MethodInvoker(() => showErrorAndReset(e)));
            }
        }
        public void rebuildModelWithRecentlyViewedIssues(JiraIssueListModel model)
        {
            ICollection <RecentlyViewedIssue> issues  = RecentlyViewedIssuesModel.Instance.Issues;
            ICollection <JiraServer>          servers = JiraServerModel.Instance.getAllEnabledServers();

            List <JiraIssue> list = new List <JiraIssue>(issues.Count);

            list.AddRange(from issue in issues
                          let server = findServer(issue.ServerGuid, servers)
                                       where server != null
                                       select facade.getIssue(server, issue.IssueKey));

            lock (this) {
                model.clear(false);
                model.addIssues(list);
            }
        }
 private void applyChanges()
 {
     try {
         facade.updateIssue(issue, new List <JiraField> {
             field
         });
         JiraIssue updatedIssue = facade.getIssue(issue.Server, issue.Key);
         this.safeInvoke(new MethodInvoker(delegate {
             Close();
             model.updateIssue(updatedIssue);
         }));
     } catch (Exception e) {
         this.safeInvoke(new MethodInvoker(delegate {
             PlvsUtils.showError("Failed to apply changes", e);
             Close();
         }));
     }
 }