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) }); }