Example #1
0
        public AgileBoardViewModel(IJiraApi jiraApi,
                                   JiraSessionViewModel jiraSession,
                                   IMessenger messenger,
                                   IssuesStatisticsCalculator statisticsCalculator,
                                   RawAgileBoard board)
        {
            Board = board;

            _messenger            = messenger;
            _jiraApi              = jiraApi;
            _jiraSession          = jiraSession;
            _statisticsCalculator = statisticsCalculator;

            PickUpSprintCommand        = new RelayCommand(OpenPickUpSprint, () => Board.Type == "scrum");
            OpenPivotAnalysisCommand   = new RelayCommand(() => _messenger.Send(new OpenPivotAnalysisMessage(BoardContent.Issues)));
            OpenEpicsOverviewCommand   = new RelayCommand(() => _messenger.Send(new OpenEpicsOverviewMessage(BoardContent.Issues, BoardContent.Epics)), () => Board.Type == "scrum");
            BrowseIssuesCommand        = new RelayCommand(() => _messenger.Send(new OpenIssuesBrowserMessage(BoardContent.Issues)));
            OpenGraveyardCommand       = new RelayCommand(() => _messenger.Send(new OpenBoardGraveyardMessage(BoardContent.Issues)));
            OpenSprintsVelocityCommand = new RelayCommand(() => _messenger.Send(new OpenSprintsVelocityMessage(BoardContent)), () => Board.Type == "scrum");

            RefreshDataCommand = new RelayCommand(() =>
            {
                _forceReload = true;
                DownloadElements();
            }, () => IsBusy == false);
            FetchChangesCommand = new RelayCommand(() =>
            {
                DownloadElements();
            }, () => IsBusy == false);

            DownloadElements();
        }
        public IssuesUpdatesChecker(ReportsSettings reportsSettings, IJiraApi jiraApi, JiraSessionViewModel jiraSession, IMessenger messenger)
        {
            _reportsSettings = reportsSettings;
            _jiraApi         = jiraApi;
            _jiraSession     = jiraSession;
            _messenger       = messenger;

            SystemEvents.SessionSwitch += (sender, args) =>
            {
                _isStationLocked = args.Reason == SessionSwitchReason.SessionLock;
            };

            _timer          = new DispatcherTimer();
            _timer.Interval = TimeSpan.FromSeconds(30);
            _timer.Tick    += TimerTick;
            _timer.Start();
        }