protected virtual UnseenItemNotificationHandler.NotifierData[] GetUnSeenData()
 {
     UnseenItemNotifier[]      notifierList = this.GetNotifierList();
     IMemberSubscriptionItem[] array        = null;
     try
     {
         base.UserContext.LockAndReconnectMailboxSession(3000);
         this.unseenItemsReader.LoadLastNItemReceiveDates(base.UserContext.MailboxSession);
         array = this.groupNotificationLocator.GetMemberSubscriptions(base.UserContext.MailboxSession, from n in notifierList
                                                                      select n.UserMailboxLocator);
     }
     finally
     {
         if (base.UserContext.MailboxSessionLockedByCurrentThread())
         {
             base.UserContext.UnlockAndDisconnectMailboxSession();
         }
     }
     UnseenItemNotificationHandler.NotifierData[] array2 = new UnseenItemNotificationHandler.NotifierData[notifierList.Length];
     for (int i = 0; i < notifierList.Length; i++)
     {
         array2[i] = new UnseenItemNotificationHandler.NotifierData(notifierList[i], array[i].LastUpdateTimeUTC);
     }
     return(array2);
 }
 private UnseenItemNotificationPayload GetPayload(UnseenItemNotificationHandler.NotifierData data)
 {
     return(new UnseenItemNotificationPayload
     {
         SubscriptionId = data.Notifier.PayloadSubscriptionId,
         UnseenData = new UnseenDataType(this.unseenItemsReader.GetUnseenItemCount(data.LastVisitedDateUTC), ExDateTimeConverter.ToUtcXsdDateTime(data.LastVisitedDateUTC)),
         Source = MailboxLocation.FromMailboxContext(base.UserContext)
     });
 }