// 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: 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); }