private void setActivePartDeux(ActiveIssue issue, bool savePastIssues)
        {
            if (savePastIssues)
            {
                savePastActiveIssuesAndSetupDropDown();
            }
            CurrentActiveIssue = new ActiveIssue(issue.Key, issue.ServerGuid);

            paused = false;
            savePausedState();

            runActivateIssueActions(() => {
                setEnabled(true);
                setDropDownTextFromCurrentActiveIssue();
                MinutesInProgress = 0;
                storeTimeSpent();
                setTimeSpentString();
                storeActiveIssue();
                activeIssueDropDown.Image = null;
                loadActiveIssueDetails();
                if (ActiveIssueChanged != null)
                {
                    ActiveIssueChanged(this, null);
                }
            });
        }
 public bool Equals(ActiveIssue other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(Equals(other.Key, Key) && Equals(other.ServerGuid, ServerGuid));
 }
        private void setActive(ActiveIssue issue)
        {
            ++generation;
            List <ActiveIssue> toRemove = pastActiveIssues.Where(i => i.Equals(issue)).ToList();

            foreach (var i in toRemove)
            {
                pastActiveIssues.Remove(i);
            }
            if (CurrentActiveIssue != null)
            {
                deactivateActiveIssue(false, issue.Key, () => setActivePartDeux(issue, false));
            }
            else
            {
                setActivePartDeux(issue, true);
            }
        }
        private static void loadIssueAndRunAction(OnIssueLoaded loaded, ActiveIssue issue)
        {
            if (issue == null)
            {
                return;
            }
            var server = JiraServerModel.Instance.getServer(new Guid(issue.ServerGuid));

            if (server == null)
            {
                return;
            }

            try {
                var jiraIssue = SmartJiraServerFacade.Instance.getIssue(server, issue.Key);
                if (jiraIssue != null)
                {
                    loaded(server, jiraIssue);
                }
            } catch (Exception e) {
                Debug.WriteLine("JiraActiveIssueManager.loadIssuAndRunAction() - exception: " + e);
            }
        }
        public void init()
        {
            ++generation;
            setTimeSpentString();
            CurrentActiveIssue = null;
            setEnabled(false);
            ParameterStore store                    = ParameterStoreManager.Instance.getStoreFor(ParameterStoreManager.StoreType.ACTIVE_ISSUES);
            string         activeIssueKey           = store.loadParameter(ACTIVE_ISSUE_KEY, null);
            string         activeIssueServerGuidStr = store.loadParameter(ACTIVE_ISSUE_SERVER_GUID, null);

            if (activeIssueKey != null && activeIssueServerGuidStr != null)
            {
                MinutesInProgress = store.loadParameter(ACTIVE_ISSUE_TIMER_VALUE, 0);
                paused            = store.loadParameter(ACTIVE_ISSUE_IS_PAUSED, 0) > 0;
                if (paused)
                {
                    buttonPause.Text  = RESUME_WORK;
                    buttonPause.Image = Resources.ico_activateissue;
                }
                ICollection <JiraServer> jiraServers = JiraServerModel.Instance.getAllEnabledServers();
                if (jiraServers.Where(server => server.GUID.ToString().Equals(activeIssueServerGuidStr)).Any())
                {
                    CurrentActiveIssue = new ActiveIssue(activeIssueKey, activeIssueServerGuidStr);
                    if (ActiveIssueChanged != null)
                    {
                        ActiveIssueChanged(this, null);
                    }
                }
            }
            loadPastActiveIssues(store);
            setDropDownTextFromCurrentActiveIssue();

            Thread t = PlvsUtils.createThread(() => loadIssueInfosWorker(generation));

            t.Start();
        }
 public PastActiveIssueMenuItem(JiraActiveIssueManager mgr, ActiveIssue issue) : base(issue.Key)
 {
     Issue  = issue;
     Click += (s, e) => mgr.setActive(issue);
 }