示例#1
0
        public static void SetIsResponseRequested(CalendarItemBase calendarItemBase, bool value)
        {
            bool flag = CalendarItemBaseData.GetIsResponseRequested(calendarItemBase);

            if (flag != value)
            {
                calendarItemBase.SetProperties(CalendarItemBaseData.isResponseRequestedPropertyDefinition, new object[]
                {
                    value
                });
            }
        }
示例#2
0
 public virtual EditCalendarItemHelper.CalendarItemUpdateFlags CopyTo(CalendarItemBase calendarItemBase)
 {
     if (calendarItemBase.Id != null && (this.id == null || this.id.CompareTo(calendarItemBase.Id.ObjectId) != 0))
     {
         throw new OwaLostContextException("Lost changes since last save.");
     }
     EditCalendarItemHelper.CalendarItemUpdateFlags calendarItemUpdateFlags = EditCalendarItemHelper.CalendarItemUpdateFlags.None;
     if (EditCalendarItemHelper.BodyChanged(this.bodyText, calendarItemBase))
     {
         if (!string.IsNullOrEmpty(this.bodyText))
         {
             if (this.bodyFormat == BodyFormat.TextHtml)
             {
                 ItemUtility.SetItemBody(calendarItemBase, BodyFormat.TextHtml, this.bodyText);
                 calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged;
             }
             else
             {
                 if (this.bodyFormat != BodyFormat.TextPlain)
                 {
                     throw new ArgumentOutOfRangeException("calendarItemBase", "Unhandled body format type : " + this.bodyFormat);
                 }
                 ItemUtility.SetItemBody(calendarItemBase, BodyFormat.TextPlain, this.bodyText);
                 calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged;
             }
         }
         else
         {
             ItemUtility.SetItemBody(calendarItemBase, BodyFormat.TextPlain, string.Empty);
             calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged;
         }
     }
     if (this.freeBusyStatus != calendarItemBase.FreeBusyStatus)
     {
         calendarItemBase.FreeBusyStatus = this.freeBusyStatus;
         calendarItemUpdateFlags        |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged;
     }
     if (calendarItemBase.Importance != this.importance)
     {
         calendarItemBase.Importance = this.importance;
         calendarItemUpdateFlags    |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged;
     }
     if (calendarItemBase.IsAllDayEvent != this.isAllDayEvent)
     {
         calendarItemBase.IsAllDayEvent = this.isAllDayEvent;
         calendarItemUpdateFlags       |= EditCalendarItemHelper.CalendarItemUpdateFlags.TimeChanged;
     }
     if (calendarItemBase.IsMeeting != this.isMeeting)
     {
         calendarItemBase.IsMeeting = this.isMeeting;
         calendarItemUpdateFlags   |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged;
     }
     if (CalendarItemBaseData.GetIsResponseRequested(calendarItemBase) != this.isResponseRequested)
     {
         CalendarItemBaseData.SetIsResponseRequested(calendarItemBase, this.isResponseRequested);
         calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged;
     }
     if (!CalendarUtilities.StringsEqualNullEmpty(calendarItemBase.Location, this.location, StringComparison.CurrentCulture))
     {
         calendarItemUpdateFlags  |= EditCalendarItemHelper.CalendarItemUpdateFlags.LocationChanged;
         calendarItemBase.Location = ((this.location != null) ? this.location : string.Empty);
     }
     CalendarItemBaseData.SyncAttendeesToCalendarItem(this, calendarItemBase);
     if (calendarItemBase.AttendeesChanged)
     {
         calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.AttendeesChanged;
     }
     if (calendarItemBase.Sensitivity != this.sensitivity)
     {
         calendarItemBase.Sensitivity = this.sensitivity;
         calendarItemUpdateFlags     |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged;
     }
     if (calendarItemBase.EndTime != this.endTime)
     {
         calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.TimeChanged;
         calendarItemBase.EndTime = this.endTime;
     }
     if (calendarItemBase.StartTime != this.startTime)
     {
         calendarItemUpdateFlags   |= EditCalendarItemHelper.CalendarItemUpdateFlags.TimeChanged;
         calendarItemBase.StartTime = this.startTime;
     }
     if (!CalendarUtilities.StringsEqualNullEmpty(calendarItemBase.Subject, this.subject, StringComparison.CurrentCulture))
     {
         calendarItemBase.Subject = ((this.subject != null) ? this.subject : string.Empty);
         calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged;
     }
     return(calendarItemUpdateFlags);
 }
示例#3
0
 public virtual void SetFrom(CalendarItemBase calendarItemBase)
 {
     if (this.attachmentIds == null)
     {
         this.attachmentIds = new List <AttachmentId>();
     }
     else
     {
         this.attachmentIds.Clear();
     }
     if (this.attendees == null)
     {
         this.attendees = new List <AttendeeData>();
     }
     else
     {
         this.attendees.Clear();
     }
     if (calendarItemBase.AttachmentCollection != null)
     {
         foreach (AttachmentHandle handle in calendarItemBase.AttachmentCollection)
         {
             using (Attachment attachment = calendarItemBase.AttachmentCollection.Open(handle))
             {
                 if (attachment.Id == null)
                 {
                     throw new ArgumentNullException("attachment.Id");
                 }
                 this.attachmentIds.Add(attachment.Id);
             }
         }
     }
     if (calendarItemBase.Body != null)
     {
         this.bodyText   = ItemUtility.GetItemBody(calendarItemBase, BodyFormat.TextPlain);
         this.bodyFormat = BodyFormat.TextPlain;
     }
     this.calendarItemType = calendarItemBase.CalendarItemType;
     this.endTime          = calendarItemBase.EndTime;
     this.freeBusyStatus   = calendarItemBase.FreeBusyStatus;
     try
     {
         if (calendarItemBase.ParentId != null)
         {
             this.folderId = StoreObjectId.Deserialize(calendarItemBase.ParentId.GetBytes());
         }
         else
         {
             this.folderId = null;
         }
         if (calendarItemBase.Id != null && calendarItemBase.Id.ObjectId != null)
         {
             this.id = StoreObjectId.Deserialize(calendarItemBase.Id.ObjectId.GetBytes());
         }
         else
         {
             this.id = null;
         }
     }
     catch (ArgumentException)
     {
         throw new OwaInvalidRequestException("Invalid store object id");
     }
     catch (FormatException)
     {
         throw new OwaInvalidRequestException("Invalid store object id");
     }
     if (calendarItemBase.Id != null)
     {
         this.changeKey = calendarItemBase.Id.ChangeKeyAsBase64String();
     }
     else
     {
         this.changeKey = null;
     }
     this.importance            = calendarItemBase.Importance;
     this.isAllDayEvent         = calendarItemBase.IsAllDayEvent;
     this.isMeeting             = calendarItemBase.IsMeeting;
     this.isOrganizer           = calendarItemBase.IsOrganizer();
     this.isResponseRequested   = CalendarItemBaseData.GetIsResponseRequested(calendarItemBase);
     this.location              = calendarItemBase.Location;
     this.meetingRequestWasSent = calendarItemBase.MeetingRequestWasSent;
     this.organizer             = AttendeeData.CloneParticipant(calendarItemBase.Organizer);
     if (calendarItemBase.ParentId != null)
     {
         this.parentId = StoreObjectId.FromProviderSpecificId(calendarItemBase.ParentId.ProviderLevelItemId);
     }
     if (calendarItemBase.AttendeeCollection != null)
     {
         foreach (Attendee attendee in calendarItemBase.AttendeeCollection)
         {
             this.attendees.Add(new AttendeeData(attendee));
         }
     }
     this.sensitivity = calendarItemBase.Sensitivity;
     this.startTime   = calendarItemBase.StartTime;
     this.subject     = calendarItemBase.Subject;
 }