private bool IsOrganizerValid(MailboxSession organizerSession, CalendarInstanceContext instanceContext)
        {
            bool isOrganizer = false;
            CalendarVersionStoreGateway cvsGateway = instanceContext.ValidationContext.CvsGateway;

            cvsGateway.QueryByGlobalObjectId(organizerSession, instanceContext.ValidationContext.BaseItem.GlobalObjectId, string.Empty, new StorePropertyDefinition[]
            {
                StoreObjectSchema.ItemClass,
                CalendarItemBaseSchema.AppointmentState
            }, delegate(PropertyBag propertyBag)
            {
                string valueOrDefault = propertyBag.GetValueOrDefault <string>(StoreObjectSchema.ItemClass);
                if (ObjectClass.IsCalendarItemCalendarItemOccurrenceOrRecurrenceException(valueOrDefault))
                {
                    AppointmentStateFlags valueOrDefault2 = propertyBag.GetValueOrDefault <AppointmentStateFlags>(CalendarItemBaseSchema.AppointmentState);
                    isOrganizer = ((valueOrDefault2 & AppointmentStateFlags.Received) == AppointmentStateFlags.None);
                    if (!isOrganizer)
                    {
                        return(false);
                    }
                }
                return(true);
            }, false, null, null, null);
            return(isOrganizer);
        }
Пример #2
0
        private static bool PairWithCancellation(CalendarVersionStoreGateway cvsGateway, CalendarItemBase deletedVersion, MailboxSession session)
        {
            bool pairedWithCancellation    = false;
            int  deletedItemSequenceNumber = deletedVersion.AppointmentSequenceNumber;

            cvsGateway.QueryByGlobalObjectId(session, deletedVersion.GlobalObjectId, "{B7DF6DD0-6F29-42b4-A1AE-44A0733782AA}", MeetingInquiryMessage.cancellationQueryProperties, delegate(PropertyBag propertyBag)
            {
                int valueOrDefault = propertyBag.GetValueOrDefault <int>(CalendarItemBaseSchema.AppointmentSequenceNumber);
                if (valueOrDefault >= deletedItemSequenceNumber)
                {
                    pairedWithCancellation = true;
                }
                return(false);
            }, true, MeetingInquiryMessage.cancellationClassArray, null, null);
            return(pairedWithCancellation);
        }