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(); } })); }
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(); })); } }