internal static bool GetForCalendarItem(string messageClass, AppointmentStateFlags flags)
 {
     if (!ObjectClass.IsCalendarItemCalendarItemOccurrenceOrRecurrenceException(messageClass) && !ObjectClass.IsCalendarItemSeries(messageClass))
     {
         throw new ArgumentException(string.Format("[IsOrganizerProperty.GetForCalendarItem] Message class MUST be a calendar item occurrence or recurrence exception in order to call this method.  ItemClass: {0}", messageClass));
     }
     return((flags & AppointmentStateFlags.Received) == AppointmentStateFlags.None);
 }
        protected override object InternalTryGetValue(PropertyBag.BasicPropertyStore propertyBag)
        {
            bool?  flag           = null;
            string valueOrDefault = propertyBag.GetValueOrDefault <string>(InternalSchema.ItemClass, string.Empty);

            if (ObjectClass.IsCalendarItemCalendarItemOccurrenceOrRecurrenceException(valueOrDefault) || ObjectClass.IsCalendarItemSeries(valueOrDefault))
            {
                AppointmentStateFlags valueOrDefault2 = propertyBag.GetValueOrDefault <AppointmentStateFlags>(InternalSchema.AppointmentStateInternal);
                flag = new bool?(IsOrganizerProperty.GetForCalendarItem(valueOrDefault, valueOrDefault2));
            }
            else if (ObjectClass.IsMeetingMessage(valueOrDefault))
            {
                MeetingMessage meetingMessage = propertyBag.Context.StoreObject as MeetingMessage;
                if (meetingMessage != null)
                {
                    CalendarItemBase calendarItemBase = null;
                    try
                    {
                        calendarItemBase = meetingMessage.GetCorrelatedItemInternal(true);
                    }
                    catch (CorruptDataException)
                    {
                    }
                    catch (CorrelationFailedException)
                    {
                    }
                    if (calendarItemBase != null)
                    {
                        flag = new bool?(calendarItemBase.IsOrganizer());
                    }
                    else if (!(meetingMessage is MeetingResponse))
                    {
                        flag = new bool?(meetingMessage.IsMailboxOwnerTheSender());
                    }
                }
            }
            if (flag != null)
            {
                return(flag);
            }
            return(new PropertyError(this, PropertyErrorCode.NotFound));
        }
Exemple #3
0
 public static StoreObjectType GetObjectType(string itemClass)
 {
     if (ObjectClass.IsOfClass(itemClass, "IPM.Note.Rules.OofTemplate.Microsoft", false))
     {
         return(StoreObjectType.OofMessage);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Note.Rules.ExternalOofTemplate.Microsoft", false))
     {
         return(StoreObjectType.ExternalOofMessage);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Note.Reminder"))
     {
         return(StoreObjectType.ReminderMessage);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Note"))
     {
         return(StoreObjectType.Message);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Post"))
     {
         return(StoreObjectType.Post);
     }
     if (ObjectClass.IsReport(itemClass))
     {
         return(StoreObjectType.Report);
     }
     if (ObjectClass.IsCalendarItem(itemClass))
     {
         return(StoreObjectType.CalendarItem);
     }
     if (ObjectClass.IsCalendarItemSeries(itemClass))
     {
         return(StoreObjectType.CalendarItemSeries);
     }
     if (ObjectClass.IsMeetingRequestSeries(itemClass))
     {
         return(StoreObjectType.MeetingRequestSeries);
     }
     if (ObjectClass.IsMeetingRequest(itemClass))
     {
         return(StoreObjectType.MeetingRequest);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.MeetingMessageSeries.Resp"))
     {
         return(StoreObjectType.MeetingResponseSeries);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Schedule.Meeting.Resp"))
     {
         return(StoreObjectType.MeetingResponse);
     }
     if (ObjectClass.IsMeetingCancellationSeries(itemClass))
     {
         return(StoreObjectType.MeetingCancellationSeries);
     }
     if (ObjectClass.IsMeetingCancellation(itemClass))
     {
         return(StoreObjectType.MeetingCancellation);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Schedule.Meeting.Notification.Forward"))
     {
         return(StoreObjectType.MeetingForwardNotification);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.MeetingMessageSeries.Notification.Forward"))
     {
         return(StoreObjectType.MeetingForwardNotificationSeries);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Notification.Meeting"))
     {
         return(StoreObjectType.MeetingForwardNotification);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Schedule.Inquiry"))
     {
         return(StoreObjectType.MeetingInquiryMessage);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Contact.Place"))
     {
         return(StoreObjectType.Place);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Contact"))
     {
         return(StoreObjectType.Contact);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.UserPhoto.Preview"))
     {
         return(StoreObjectType.UserPhotoPreview);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.UserPhoto"))
     {
         return(StoreObjectType.UserPhoto);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.DistList"))
     {
         return(StoreObjectType.DistributionList);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Task"))
     {
         return(StoreObjectType.Task);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.TaskRequest"))
     {
         return(StoreObjectType.TaskRequest);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.ConversationAction"))
     {
         return(StoreObjectType.ConversationActionItem);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Note.rpmsg.Microsoft.Voicemail.UM.CA"))
     {
         return(StoreObjectType.Message);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Note.rpmsg.Microsoft.Voicemail.UM"))
     {
         return(StoreObjectType.Message);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.Sharing", false))
     {
         return(StoreObjectType.SharingMessage);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.GroupMailbox.JoinRequest"))
     {
         return(StoreObjectType.GroupMailboxRequestMessage);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.MailboxAssociation.Group"))
     {
         return(StoreObjectType.MailboxAssociationGroup);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.MailboxAssociation.User"))
     {
         return(StoreObjectType.MailboxAssociationUser);
     }
     if (ObjectClass.IsOfClass(itemClass, "IPM.HierarchySync.Metadata"))
     {
         return(StoreObjectType.HierarchySyncMetadata);
     }
     if (ObjectClass.IsSubscriptionDataItem(itemClass))
     {
         return(StoreObjectType.PushNotificationSubscription);
     }
     if (ObjectClass.IsOutlookServiceSubscriptionDataItem(itemClass))
     {
         return(StoreObjectType.OutlookServiceSubscription);
     }
     if (ObjectClass.IsConfigurationItem(itemClass))
     {
         return(StoreObjectType.Configuration);
     }
     if (ObjectClass.IsParkedMeetingMessage(itemClass))
     {
         return(StoreObjectType.ParkedMeetingMessage);
     }
     if (ObjectClass.IsGenericMessage(itemClass))
     {
         return(StoreObjectType.Message);
     }
     if (ObjectClass.IsCalendarFolder(itemClass))
     {
         return(StoreObjectType.CalendarFolder);
     }
     if (ObjectClass.IsContactsFolder(itemClass))
     {
         return(StoreObjectType.ContactsFolder);
     }
     if (ObjectClass.IsTaskFolder(itemClass))
     {
         return(StoreObjectType.TasksFolder);
     }
     if (ObjectClass.IsNotesFolder(itemClass))
     {
         return(StoreObjectType.NotesFolder);
     }
     if (ObjectClass.IsJournalFolder(itemClass))
     {
         return(StoreObjectType.JournalFolder);
     }
     if (ObjectClass.IsShortcutFolder(itemClass))
     {
         return(StoreObjectType.ShortcutFolder);
     }
     if (ObjectClass.IsGenericFolder(itemClass))
     {
         return(StoreObjectType.Folder);
     }
     return(StoreObjectType.Unknown);
 }