// Token: 0x06001400 RID: 5120 RVA: 0x00073D14 File Offset: 0x00071F14
        protected override void DrainNotifications(ConcurrentDictionary <Guid, PushNotificationContext> notificationContexts)
        {
            MailboxNotificationBatch mailboxNotificationBatch = new MailboxNotificationBatch();

            foreach (Guid guid in notificationContexts.Keys)
            {
                if (base.CheckCancellation())
                {
                    return;
                }
                PushNotificationContext pushNotificationContext = notificationContexts[guid];
                MailboxNotification     notification            = this.CreateMailboxNotification(guid, pushNotificationContext);
                mailboxNotificationBatch.Add(notification);
                NotificationTracker.ReportCreated(notification, pushNotificationContext.OriginalTime);
                PushNotificationHelper.LogNotificationBatchEntry(guid, notification);
            }
            if (!mailboxNotificationBatch.IsEmpty)
            {
                ExTraceGlobals.PushNotificationAssistantTracer.TraceDebug <int>((long)this.GetHashCode(), "PushNotificationBatchManager.DrainNotifications: Ready to send notification batch, size:'{0}'.", mailboxNotificationBatch.Count);
                if (base.CheckCancellation())
                {
                    return;
                }
                PushNotificationBatchManager.notificationsPerBatchCounter.AddSample((long)mailboxNotificationBatch.Count);
                this.SendPublishNotificationRequest(mailboxNotificationBatch);
            }
            notificationContexts.Clear();
        }
예제 #2
0
 // Token: 0x0600143B RID: 5179 RVA: 0x00074C14 File Offset: 0x00072E14
 internal static void LogNotificationBatchEntry(Guid mailboxGuid, MailboxNotification notification)
 {
     if (PushNotificationsCrimsonEvents.NotificationBatchEntry.IsEnabled(PushNotificationsCrimsonEvent.Provider))
     {
         PushNotificationsCrimsonEvents.NotificationBatchEntry.Log <Guid, string>(mailboxGuid, notification.ToFullString());
     }
     if (ExTraceGlobals.PushNotificationAssistantTracer.IsTraceEnabled(TraceType.DebugTrace))
     {
         ExTraceGlobals.PushNotificationAssistantTracer.TraceDebug <Guid, string>(0L, "MailboxNotification processed for Mailbox '{0}': {1}", mailboxGuid, notification.ToFullString());
     }
 }