private void notifyOnMergeRequestEvent(MergeRequestEvent e) { if (!_eventFilter.NeedSuppressEvent(e)) { BalloonText balloonText = getBalloonText(e); _trayIcon.ShowTooltipBalloon(balloonText); } }
private void notify(IEnumerable <UserEvents.MergeRequestEvent> updates) { if (updates != null) { foreach (UserEvents.MergeRequestEvent update in updates) { MergeRequestEvent?.Invoke(update); } } }
/// <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); } } }
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)); }
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()); } }
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); }