// Token: 0x060014A6 RID: 5286 RVA: 0x000779C0 File Offset: 0x00075BC0 protected override void InternalSetToDefault(IProperty srcProperty) { Item mailboxItem = (Item)base.XsoItem; XsoFlagProperty.ClearFlag(mailboxItem); base.InternalSetToDefault(srcProperty); }
// Token: 0x060014AE RID: 5294 RVA: 0x000780E0 File Offset: 0x000762E0 private bool LoadFlagData(Item mailboxItem, FlagData flagData) { object obj = mailboxItem.TryGetProperty(ItemSchema.FlagStatus); if (Enum.IsDefined(typeof(FlagStatus), obj) && (int)obj != 0) { flagData.Status = new int?((int)obj); flagData.Type = (mailboxItem.TryGetProperty(ItemSchema.FlagRequest) as string); flagData.DateCompleted = XsoFlagProperty.GetStoreDateTime(mailboxItem, ItemSchema.CompleteDate); flagData.CompleteTime = XsoFlagProperty.GetStoreDateTime(mailboxItem, ItemSchema.FlagCompleteTime); object obj2 = mailboxItem.TryGetProperty(ItemSchema.ReminderIsSet); if (obj2 is bool) { flagData.ReminderSet = new bool?((bool)obj2); } flagData.ReminderTime = XsoFlagProperty.GetStoreDateTime(mailboxItem, ItemSchema.ReminderDueBy); flagData.StartDate = XsoFlagProperty.GetStoreDateTime(mailboxItem, ItemSchema.LocalStartDate); flagData.UtcStartDate = XsoFlagProperty.GetStoreDateTime(mailboxItem, ItemSchema.UtcStartDate); flagData.DueDate = XsoFlagProperty.GetStoreDateTime(mailboxItem, ItemSchema.LocalDueDate); flagData.UtcDueDate = XsoFlagProperty.GetStoreDateTime(mailboxItem, ItemSchema.UtcDueDate); flagData.Subject = (base.XsoItem.TryGetProperty(ItemSchema.FlagSubject) as string); flagData.OrdinalDate = XsoFlagProperty.GetStoreDateTime(mailboxItem, MessageItemSchema.ToDoOrdinalDate); flagData.SubOrdinalDate = (base.XsoItem.TryGetProperty(MessageItemSchema.ToDoSubOrdinal) as string); return(true); } return(false); }
// Token: 0x060014A9 RID: 5289 RVA: 0x00077AE0 File Offset: 0x00075CE0 private static void SetFlag(Item mailboxItem, FlagData flagData) { if (flagData.Type == null && !(mailboxItem is MeetingMessage)) { throw new ConversionException("Missing required data from the client for non-MeetingMessage item: Type!"); } if ((flagData.StartDate != null || flagData.UtcStartDate != null || flagData.DueDate != null || flagData.UtcDueDate != null) && (flagData.StartDate == null || flagData.UtcStartDate == null || flagData.DueDate == null || flagData.UtcDueDate == null)) { throw new ConversionException(string.Format(CultureInfo.InvariantCulture, "Incorrect all or nothing datetime properties: StartDate={0}, UtcStartDate={1}, DueDate={2}, UtcDueDate={3}", new object[] { flagData.StartDate, flagData.UtcStartDate, flagData.DueDate, flagData.UtcDueDate })); } if (flagData.StartDate != null && (flagData.StartDate.Value > flagData.DueDate.Value || flagData.UtcStartDate.Value > flagData.UtcDueDate.Value)) { throw new ConversionException(string.Format(CultureInfo.InvariantCulture, "Start date cannot be later than due date: StartDate={0}, UtcStartDate={1}, DueDate={2}, UtcDueDate={3}", new object[] { flagData.StartDate, flagData.UtcStartDate, flagData.DueDate, flagData.UtcDueDate })); } if (flagData.ReminderSet != null && flagData.ReminderSet.Value && flagData.ReminderTime == null) { throw new ConversionException("Missing ReminderTime while ReminderSet is true."); } if (flagData.ReminderSet == null) { flagData.ReminderSet = new bool?(false); } if (!flagData.ReminderSet.Value) { XsoFlagProperty.SetOrDeleteValueProperty <ExDateTime>(mailboxItem, MessageItemSchema.ReplyTime, null); } else { XsoFlagProperty.SetOrDeleteValueProperty <ExDateTime>(mailboxItem, MessageItemSchema.ReplyTime, flagData.ReminderTime); } if (mailboxItem.Reminder != null) { mailboxItem.Reminder.IsSet = flagData.ReminderSet.Value; } if (flagData.ReminderTime != null && mailboxItem.Reminder != null && !flagData.ReminderTime.Equals(mailboxItem.Reminder.DueBy)) { mailboxItem.Reminder.DueBy = flagData.ReminderTime; } XsoFlagProperty.SetOrDeleteValueProperty <ExDateTime>(mailboxItem, MessageItemSchema.ToDoOrdinalDate, flagData.OrdinalDate); XsoFlagProperty.SetOrDeleteProperty <string>(mailboxItem, MessageItemSchema.ToDoSubOrdinal, flagData.SubOrdinalDate); mailboxItem.SetFlagForUtcSession(flagData.Type, flagData.StartDate, flagData.UtcStartDate, flagData.DueDate, flagData.UtcDueDate); XsoFlagProperty.SetOrDeleteProperty <string>(mailboxItem, ItemSchema.FlagSubject, flagData.Subject); }
// Token: 0x060014A7 RID: 5287 RVA: 0x000779E8 File Offset: 0x00075BE8 protected override void InternalCopyFromModified(IProperty srcProperty) { Item mailboxItem = (Item)base.XsoItem; INestedProperty nestedProperty = (INestedProperty)srcProperty; FlagData flagData = (FlagData)nestedProperty.NestedData; if (flagData.Status == null || flagData.Status.Value == 0) { XsoFlagProperty.ClearFlag(mailboxItem); return; } if (flagData.Status == 2) { XsoFlagProperty.SetFlag(mailboxItem, flagData); return; } if (flagData.Status == 1) { XsoFlagProperty.CompleteFlag(mailboxItem, flagData); return; } throw new ConversionException("Flag Status cannot be a value other than 0, 1, 2"); }
// Token: 0x060014AA RID: 5290 RVA: 0x00077E04 File Offset: 0x00076004 private static void CompleteFlag(Item mailboxItem, FlagData flagData) { if (flagData.CompleteTime == null) { throw new ConversionException(string.Format(CultureInfo.InvariantCulture, "Missing required data from the client: CompleteTime={0}", new object[] { flagData.CompleteTime })); } if ((flagData.StartDate != null && flagData.DueDate != null && flagData.StartDate.Value > flagData.DueDate.Value) || (flagData.UtcStartDate != null && flagData.UtcDueDate != null && flagData.UtcStartDate.Value > flagData.UtcDueDate.Value)) { throw new ConversionException(string.Format(CultureInfo.InvariantCulture, "Start date cannot be later than due date: StartDate={0}, UtcStartDate={1}, DueDate={2}, UtcDueDate={3}", new object[] { flagData.StartDate, flagData.UtcStartDate, flagData.DueDate, flagData.UtcDueDate })); } if (mailboxItem.Reminder != null) { mailboxItem.Reminder.IsSet = false; } XsoFlagProperty.SetOrDeleteValueProperty <ExDateTime>(mailboxItem, MessageItemSchema.ReplyTime, flagData.ReminderTime); XsoFlagProperty.SetOrDeleteProperty <string>(mailboxItem, ItemSchema.FlagSubject, flagData.Subject); if (!(mailboxItem is MeetingMessage)) { XsoFlagProperty.SetOrDeleteProperty <string>(mailboxItem, ItemSchema.FlagRequest, flagData.Type); } XsoFlagProperty.SetOrDeleteValueProperty <ExDateTime>(mailboxItem, ItemSchema.LocalStartDate, flagData.StartDate); XsoFlagProperty.SetOrDeleteValueProperty <ExDateTime>(mailboxItem, ItemSchema.LocalDueDate, flagData.DueDate); XsoFlagProperty.SetOrDeleteValueProperty <ExDateTime>(mailboxItem, ItemSchema.UtcStartDate, flagData.UtcStartDate); XsoFlagProperty.SetOrDeleteValueProperty <ExDateTime>(mailboxItem, ItemSchema.UtcDueDate, flagData.UtcDueDate); XsoFlagProperty.SetOrDeleteValueProperty <ExDateTime>(mailboxItem, MessageItemSchema.ToDoOrdinalDate, flagData.OrdinalDate); XsoFlagProperty.SetOrDeleteProperty <string>(mailboxItem, MessageItemSchema.ToDoSubOrdinal, flagData.SubOrdinalDate); mailboxItem.CompleteFlagForUtcSession(flagData.DateCompleted, flagData.CompleteTime.Value); }