Esempio n. 1
0
 private void notifyOnMergeRequestEvent(MergeRequestEvent e)
 {
     if (!_eventFilter.NeedSuppressEvent(e))
     {
         BalloonText balloonText = getBalloonText(e);
         _trayIcon.ShowTooltipBalloon(balloonText);
     }
 }
Esempio n. 2
0
 private void notify(IEnumerable <UserEvents.MergeRequestEvent> updates)
 {
     if (updates != null)
     {
         foreach (UserEvents.MergeRequestEvent update in updates)
         {
             MergeRequestEvent?.Invoke(update);
         }
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Process a timer event
        /// </summary>
        async private void onTimer(object sender, System.Timers.ElapsedEventArgs e)
        {
            IEnumerable <UserEvents.MergeRequestEvent> updates = await updateAllOnTimer();

            if (updates != null)
            {
                foreach (UserEvents.MergeRequestEvent update in updates)
                {
                    MergeRequestEvent?.Invoke(update);
                }
            }
        }
Esempio n. 4
0
        internal bool NeedSuppressEvent(MergeRequestEvent e)
        {
            if (_currentUser == null)
            {
                Debug.Assert(false);
                return(false);
            }

            MergeRequest mergeRequest = e.FullMergeRequestKey.MergeRequest;

            return(!_mergeRequestFilter.DoesMatchFilter(mergeRequest) ||
                   (isServiceEvent(mergeRequest) && !_settings.Notifications_Service) ||
                   (isCurrentUserActivity(_currentUser, mergeRequest) && !_settings.Notifications_MyActivity) ||
                   (e.EventType == MergeRequestEvent.Type.NewMergeRequest && !_settings.Notifications_NewMergeRequests) ||
                   (e.EventType == MergeRequestEvent.Type.UpdatedMergeRequest && !_settings.Notifications_UpdatedMergeRequests) ||
                   (e.EventType == MergeRequestEvent.Type.UpdatedMergeRequest && !((MergeRequestEvent.UpdateScope)e.Scope).Commits) ||
                   (e.EventType == MergeRequestEvent.Type.ClosedMergeRequest && !_settings.Notifications_MergedMergeRequests));
        }
Esempio n. 5
0
        private TrayIcon.BalloonText getBalloonText(MergeRequestEvent e)
        {
            MergeRequest mergeRequest = e.FullMergeRequestKey.MergeRequest;
            string       projectName  = getProjectName(e.FullMergeRequestKey.ProjectKey);
            string       title        = String.Format("{0}: Merge Request Event", projectName);

            switch (e.EventType)
            {
            case MergeRequestEvent.Type.NewMergeRequest:
                return(new BalloonText
                       (
                           title,
                           String.Format("New merge request \"{0}\" from {1}",
                                         mergeRequest.Title, mergeRequest.Author.Name)
                       ));

            case MergeRequestEvent.Type.ClosedMergeRequest:
                return(new BalloonText
                       (
                           title,
                           String.Format("Merge request \"{0}\" from {1} was merged/closed",
                                         mergeRequest.Title, mergeRequest.Author.Name)
                       ));

            case MergeRequestEvent.Type.UpdatedMergeRequest:
                Debug.Assert(((MergeRequestEvent.UpdateScope)e.Scope).Commits);
                return(new BalloonText
                       (
                           title,
                           String.Format("New commits in merge request \"{0}\" from {1}",
                                         mergeRequest.Title, mergeRequest.Author.Name)
                       ));

            default:
                Debug.Assert(false);
                return(new BalloonText());
            }
        }
Esempio n. 6
0
        private void enqueueOneShotTimer(MergeRequestKey?mrk, int interval, Action onUpdateFinished)
        {
            if (interval < 1)
            {
                return;
            }

            System.Timers.Timer oneShotTimer = new System.Timers.Timer
            {
                Interval            = interval,
                AutoReset           = false,
                SynchronizingObject = _timer?.SynchronizingObject
            };

            oneShotTimer.Elapsed +=
                async(s, e) =>
            {
                IEnumerable <UserEvents.MergeRequestEvent> updates =
                    await(mrk.HasValue ? updateOneOnTimer(mrk.Value) : updateAllOnTimer());

                if (updates != null)
                {
                    foreach (UserEvents.MergeRequestEvent update in updates)
                    {
                        MergeRequestEvent?.Invoke(update);
                    }
                }

                onUpdateFinished?.Invoke();
                _timer?.Start();
                _oneShotTimers.Remove(oneShotTimer);
            };
            _timer?.Stop();
            oneShotTimer.Start();

            _oneShotTimers.Add(oneShotTimer);
        }
 private void onUpdate(UserEvents.MergeRequestEvent e)
 {
     MergeRequestEvent?.Invoke(e);
 }