// Token: 0x0600095E RID: 2398 RVA: 0x0003F034 File Offset: 0x0003D234 public static IList <CalendarInfo> Load(ExDateTime creationRequestTime, ExTimeZone timeZoneAdjustment, MailboxSession session, StoreObjectId calFldrId, StorageWorkingHours workingHours, ExDateTime actualizationTime, ExDateTime endTime) { List <CalendarInfo> list = new List <CalendarInfo>(); using (CalendarFolder calendarFolder = CalendarFolder.Bind(session, calFldrId)) { foreach (object[] propVals in calendarFolder.GetCalendarView(actualizationTime, endTime, CalendarInfo.InterestedProperties)) { CalendarInfo calendarInfo = CalendarInfo.FromInterestedProperties(creationRequestTime, timeZoneAdjustment, session, true, propVals); if (calendarInfo.IsInteresting(CalendarNotificationType.Summary) && (workingHours == null || Utils.InWorkingHours(calendarInfo.StartTime, calendarInfo.EndTime, workingHours))) { list.Add(calendarInfo); } } } return(list.AsReadOnly()); }
// Token: 0x06000924 RID: 2340 RVA: 0x0003DBB0 File Offset: 0x0003BDB0 private static void UpdateReminderAccordingToChangedUpdate(MailboxData mailboxData, IList <CalendarInfo> calEvents, IList <CalendarInfo> eventsToBeRemoved) { List <CalendarInfo> eventsToBeAdded = new List <CalendarInfo>(calEvents); ExDateTime nextReminderReloadTime = ExDateTime.MinValue; mailboxData.Actions.ForEach(delegate(CalendarNotificationAction action) { if (typeof(ReminderReloading) == action.GetType()) { nextReminderReloadTime = action.ExpectedTime; return; } if (typeof(ReminderEmitting) != action.GetType()) { return; } CalendarInfo calendarInfo2 = ((ReminderEmitting)action).CalendarInfo; IList <CalendarInfo> list = null; CalendarInfo calendarInfo3 = null; if (CalendarChangeProcessor.TryGetMatched(eventsToBeRemoved, calendarInfo2.CalendarItemIdentity, calendarInfo2.CalendarItemOccurrenceIdentity, true, out list, out calendarInfo3) && calendarInfo3 != null) { CalendarNotificationInitiator.CompleteAction(action, "UpdateReminderAccordingToChangedUpdate"); } list = null; calendarInfo3 = null; if (CalendarChangeProcessor.TryGetMatched(eventsToBeAdded, calendarInfo2.CalendarItemIdentity, calendarInfo2.CalendarItemOccurrenceIdentity, true, out list, out calendarInfo3)) { eventsToBeAdded.Remove(calendarInfo3); ReminderEmitting action3; if (!calendarInfo3.ReminderIsSet || !calendarInfo3.IsInteresting(CalendarNotificationType.ChangedUpdate) || calendarInfo3.ReminderTime < calendarInfo3.CreationRequestTime || !NotificationFactories.Instance.TryCreateReminderEmitting(calendarInfo3, action.Context, out action3)) { CalendarNotificationInitiator.CompleteAction(action, "UpdateReminderAccordingToChangedUpdate"); return; } CalendarNotificationInitiator.UpdateAction(action, action3, "UpdateReminderAccordingToChangedUpdate"); } }); foreach (CalendarInfo calendarInfo in eventsToBeAdded) { if (calendarInfo.ReminderIsSet) { if (calendarInfo.ReminderTime < calendarInfo.CreationRequestTime) { ExTraceGlobals.AssistantTracer.TraceDebug((long)typeof(CalendarChangeProcessor).GetHashCode(), "Reminder is out of date, subj: {0}, usr: {1}, event_t: {2}, rmd_t: {3}, s_t: {4}, e_t: {5}", new object[] { calendarInfo.NormalizedSubject, mailboxData.Settings.LegacyDN, calendarInfo.CreationRequestTime, calendarInfo.ReminderTime, calendarInfo.StartTime, calendarInfo.EndTime }); } else if (nextReminderReloadTime == ExDateTime.MinValue || calendarInfo.ReminderTime <= nextReminderReloadTime) { ReminderEmitting action2; if (NotificationFactories.Instance.TryCreateReminderEmitting(calendarInfo, mailboxData, out action2)) { CalendarNotificationInitiator.ScheduleAction(action2, "UpdateReminderAccordingToChangedUpdate"); } } else { ExTraceGlobals.AssistantTracer.TraceDebug <ExDateTime, ExDateTime>((long)typeof(CalendarChangeProcessor).GetHashCode(), "We didn't process this event because reminderTime {0} is greater nextReminderReloadTime {1}. ", calendarInfo.ReminderTime, nextReminderReloadTime); } } } }
// Token: 0x0600095D RID: 2397 RVA: 0x0003ED90 File Offset: 0x0003CF90 public static IList <CalendarInfo> Load(ExDateTime creationRequestTime, ExTimeZone timeZoneAdjustment, MailboxSession session, StoreObjectId calFldrId, StorageWorkingHours workingHours, ExDateTime actualizationTime, ExDateTime endTime) { StoreObjectId defaultFolderId = session.GetDefaultFolderId(DefaultFolderType.Reminders); if (defaultFolderId == null) { ExTraceGlobals.AssistantTracer.TraceDebug <IExchangePrincipal, string>((long)typeof(ReminderLoader).GetHashCode(), "cannot open reminder folder for user {0}, Time {1}", session.MailboxOwner, ExDateTime.GetNow(timeZoneAdjustment).ToLongTimeString()); return(new CalendarInfo[0]); } List <CalendarInfo> list = new List <CalendarInfo>(); StoreObjectId storeObjectId = calFldrId; if (calFldrId.IsFolderId && StoreObjectType.Folder != calFldrId.ObjectType) { storeObjectId = calFldrId.Clone(); storeObjectId.UpdateItemType(StoreObjectType.Folder); } QueryFilter queryFilter = new AndFilter(new QueryFilter[] { new ComparisonFilter(ComparisonOperator.GreaterThanOrEqual, ItemSchema.ReminderNextTime, actualizationTime), new ComparisonFilter(ComparisonOperator.LessThan, ItemSchema.ReminderNextTime, endTime), new ComparisonFilter(ComparisonOperator.Equal, ItemSchema.ReminderIsSet, true), new ComparisonFilter(ComparisonOperator.Equal, StoreObjectSchema.ParentItemId, storeObjectId) }); SortBy[] sortColumns = new SortBy[] { new SortBy(ItemSchema.ReminderNextTime, SortOrder.Ascending) }; new Interval <ExDateTime>(actualizationTime, false, endTime, true); using (SearchFolder searchFolder = SearchFolder.Bind(session, defaultFolderId)) { using (QueryResult queryResult = searchFolder.ItemQuery(ItemQueryType.None, queryFilter, sortColumns, CalendarInfo.InterestedProperties)) { ExDateTime exDateTime = ExDateTime.MinValue; foreach (object[] propVals in queryResult.GetRows(100)) { CalendarInfo calendarInfo = CalendarInfo.FromInterestedProperties(creationRequestTime, timeZoneAdjustment, session, true, propVals); if (CalendarItemType.RecurringMaster == calendarInfo.CalendarItemType) { using (CalendarItem calendarItem = CalendarItem.Bind(session, calendarInfo.CalendarItemIdentity)) { using (CalendarItemOccurrence calendarItemOccurrence = (CalendarItemOccurrence)calendarItem.Reminder.GetPertinentItem(actualizationTime)) { if (calendarItemOccurrence != null) { calendarInfo = CalendarInfo.FromCalendarItemBase(creationRequestTime, timeZoneAdjustment, calendarItemOccurrence); } } } } if (!(calendarInfo.ReminderTime < actualizationTime) && calendarInfo.IsInteresting(CalendarNotificationType.Reminder) && (workingHours == null || Utils.InWorkingHours(calendarInfo.StartTime, calendarInfo.EndTime, workingHours))) { if (ExDateTime.MinValue == exDateTime) { exDateTime = calendarInfo.ReminderTime; } else if (calendarInfo.ReminderTime > exDateTime) { break; } list.Add(calendarInfo); } } } } return(list.AsReadOnly()); }