Esempio n. 1
0
        private void ProcessChangeHighlights(CalendarItemBase calendarItem, long meetingRequestBodySize, long calendarItemBodySize)
        {
            int num = base.GetValueOrDefault <int>(InternalSchema.ChangeHighlight, -1);

            if (calendarItem.IsNew && !(calendarItem is CalendarItemOccurrence))
            {
                num = 0;
                base.LocationIdentifierHelperInstance.SetLocationIdentifier(47221U);
                this[InternalSchema.ChangeHighlight] = num;
            }
            else
            {
                ChangeHighlightHelper changeHighlightHelper = MeetingRequest.CompareForChangeHighlightOnUpdatedItems(base.PropertyBag, meetingRequestBodySize, calendarItem.PropertyBag, calendarItemBodySize);
                if (this.ShouldPreserveAttendeesChanges(calendarItem))
                {
                    PreservablePropertyContext context = new PreservablePropertyContext(this, calendarItem, (ChangeHighlightProperties)num);
                    foreach (StorePropertyDefinition storePropertyDefinition in ChangeHighlightHelper.HighlightProperties)
                    {
                        if (changeHighlightHelper[storePropertyDefinition])
                        {
                            PreservableMeetingMessageProperty preservableMeetingMessageProperty = null;
                            if (PreservableMeetingMessageProperty.InstanceFromPropertyDefinition.TryGetValue(storePropertyDefinition, out preservableMeetingMessageProperty))
                            {
                                changeHighlightHelper[storePropertyDefinition] = !preservableMeetingMessageProperty.ShouldPreserve(context);
                            }
                        }
                    }
                }
                num = changeHighlightHelper.HighlightFlags;
                MeetingMessageType meetingMessageType = changeHighlightHelper.SuggestedMeetingType;
                if (meetingMessageType == MeetingMessageType.InformationalUpdate && calendarItem.IsCancelled)
                {
                    meetingMessageType = MeetingMessageType.FullUpdate;
                }
                if (this.MeetingRequestType != MeetingMessageType.PrincipalWantsCopy)
                {
                    this.MeetingRequestType = meetingMessageType;
                }
                else
                {
                    base.LocationIdentifierHelperInstance.SetLocationIdentifier(35701U);
                    this[InternalSchema.OriginalMeetingType] = meetingMessageType;
                }
                base.LocationIdentifierHelperInstance.SetLocationIdentifier(52085U);
                this[InternalSchema.ChangeHighlight] = num;
            }
            calendarItem.SetChangeHighlight(num);
        }