public static EditCalendarItemHelper.CalendarItemUpdateFlags GetCalendarItem(UserContext userContext, StoreObjectId storeObjectId, StoreObjectId folderId, string changeKey, bool syncCalendarItem, out CalendarItemBase calendarItemBase) { if (userContext == null) { throw new ArgumentNullException("userContext"); } EditCalendarItemHelper.CalendarItemUpdateFlags result = EditCalendarItemHelper.CalendarItemUpdateFlags.None; CalendarItemBaseData calendarItemBaseData = EditCalendarItemHelper.GetUserContextData(userContext); if (calendarItemBaseData != null && !string.IsNullOrEmpty(calendarItemBaseData.ChangeKey) && string.IsNullOrEmpty(changeKey)) { changeKey = calendarItemBaseData.ChangeKey; } calendarItemBase = null; if (storeObjectId != null) { if (!string.IsNullOrEmpty(changeKey)) { calendarItemBase = Utilities.GetItem <CalendarItemBase>(userContext, storeObjectId, changeKey, new PropertyDefinition[0]); } else { calendarItemBase = Utilities.GetItem <CalendarItemBase>(userContext, storeObjectId, new PropertyDefinition[0]); } } if (calendarItemBase == null) { if (calendarItemBaseData != null && calendarItemBaseData.FolderId != null) { calendarItemBase = EditCalendarItemHelper.CreateDraft(userContext, calendarItemBaseData.FolderId); } else { calendarItemBase = EditCalendarItemHelper.CreateDraft(userContext, folderId); } if (calendarItemBaseData != null && calendarItemBaseData.IsMeeting != calendarItemBase.IsMeeting) { calendarItemBase.IsMeeting = calendarItemBaseData.IsMeeting; } } if (calendarItemBaseData != null && syncCalendarItem) { result = calendarItemBaseData.CopyTo(calendarItemBase); } else { if (calendarItemBaseData == null) { calendarItemBaseData = CalendarItemBaseData.Create(calendarItemBase); } EditCalendarItemHelper.SetUserContextData(userContext, calendarItemBaseData); } return(result); }
// Token: 0x0600042F RID: 1071 RVA: 0x00023760 File Offset: 0x00021960 protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (base.OwaContext.FormsRegistryContext.Action != null) { this.action = base.OwaContext.FormsRegistryContext.Action; } if (string.IsNullOrEmpty(this.action)) { this.messageIdString = Utilities.GetQueryStringParameter(base.Request, "id", true); this.changeKeyString = null; } else { this.messageIdString = Utilities.GetFormParameter(base.Request, "hidid", true); this.changeKeyString = Utilities.GetFormParameter(base.Request, "hidchk", true); } this.GetItem(); string a; if ((a = this.action) != null) { if (!(a == "Add")) { if (a == "Del") { if (Utilities.GetFormParameter(base.Request, "dLst", false) != null) { this.RemoveAttachments(); } } } else { this.AddAttachments(); } } this.attachmentList = AttachmentWell.GetAttachmentInformation(base.Item, base.AttachmentLinks, base.UserContext.IsPublicLogon); if (base.Item is Contact) { OwaForm.RemoveContactPhoto(this.attachmentList); } CalendarItemBaseData userContextData = EditCalendarItemHelper.GetUserContextData(base.UserContext); if (userContextData != null && userContextData.Id != null && !string.IsNullOrEmpty("hidchk") && userContextData.Id.Equals(base.Item.Id.ObjectId) && userContextData.ChangeKey != this.changeKeyString) { userContextData.ChangeKey = this.changeKeyString; } this.levelOneFound = AttachmentUtility.IsLevelOneAndBlock(this.attachmentList); }
public static void CreateUserContextData(UserContext userContext, CalendarItemBase calendarItemBase) { userContext.WorkingData = CalendarItemBaseData.Create(calendarItemBase); }
public static void SetUserContextData(UserContext userContext, CalendarItemBaseData calendarItemBaseData) { userContext.WorkingData = calendarItemBaseData; }
public static EditCalendarItemHelper.CalendarItemUpdateFlags UpdateCalendarItemValues(CalendarItemBase calendarItemBase, UserContext userContext, HttpRequest request, out string errorMessage) { errorMessage = null; EditCalendarItemHelper.CalendarItemUpdateFlags calendarItemUpdateFlags = EditCalendarItemHelper.CalendarItemUpdateFlags.None; if (calendarItemBase == null) { throw new ArgumentNullException("calendarItemBase"); } if (userContext == null) { throw new ArgumentNullException("userContext"); } if (request == null) { throw new ArgumentNullException("request"); } string formParameter = Utilities.GetFormParameter(request, "hidmr", false); bool flag = false; if (formParameter != null) { int num; if (int.TryParse(formParameter, out num)) { flag = (num == 1); } if (calendarItemBase.IsMeeting != flag) { calendarItemBase.IsMeeting = flag; calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged; } } formParameter = Utilities.GetFormParameter(request, "txtsbj", false); if (formParameter != null && !string.Equals(formParameter, calendarItemBase.Subject)) { try { calendarItemBase.Subject = formParameter; } catch (PropertyValidationException ex) { throw new OwaInvalidRequestException(ex.Message); } calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged; } formParameter = Utilities.GetFormParameter(request, "txtloc", false); if (formParameter != null && !string.Equals(calendarItemBase.Location, formParameter)) { if (formParameter.Length > 255) { throw new OwaInvalidRequestException("Input Location string is too long."); } calendarItemBase.Location = formParameter; calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.LocationChanged; } bool flag2 = !flag || Utilities.GetFormParameter(request, "cbreqres", false) != null; if (CalendarItemBaseData.GetIsResponseRequested(calendarItemBase) != flag2) { calendarItemBase[ItemSchema.IsResponseRequested] = flag2; calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged; } bool flag3 = false; if (!string.IsNullOrEmpty(Utilities.GetFormParameter(request, "selSM", false))) { flag3 = (Utilities.GetFormParameter(request, "cballday", false) != null); } else { formParameter = Utilities.GetFormParameter(request, "hidade", false); int num2; if (formParameter != null && int.TryParse(formParameter, out num2)) { flag3 = (num2 == 1); } } formParameter = Utilities.GetFormParameter(request, "selfb", false); if (formParameter != null) { BusyType busyType = (BusyType)int.Parse(formParameter); if (busyType != calendarItemBase.FreeBusyStatus) { calendarItemBase.FreeBusyStatus = busyType; calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged; } } Sensitivity sensitivity = (Utilities.GetFormParameter(request, "cbprivate", false) != null) ? Sensitivity.Private : Sensitivity.Normal; if ((calendarItemBase.CalendarItemType == CalendarItemType.Single || calendarItemBase.CalendarItemType == CalendarItemType.RecurringMaster) && calendarItemBase.Sensitivity != sensitivity) { calendarItemBase.Sensitivity = sensitivity; calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged; } calendarItemUpdateFlags |= EditCalendarItemHelper.UpdateImportance(calendarItemBase, request); formParameter = Utilities.GetFormParameter(request, "txtbdy", false); if (formParameter != null && EditCalendarItemHelper.BodyChanged(formParameter, calendarItemBase)) { if (!string.IsNullOrEmpty(formParameter)) { if (calendarItemBase.Body.Format == BodyFormat.TextHtml) { ItemUtility.SetItemBody(calendarItemBase, BodyFormat.TextHtml, formParameter); calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged; } else if (calendarItemBase.Body.Format == BodyFormat.TextPlain) { ItemUtility.SetItemBody(calendarItemBase, BodyFormat.TextPlain, formParameter); calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged; } else { if (calendarItemBase.Body.Format != BodyFormat.ApplicationRtf) { throw new ArgumentOutOfRangeException("calendarItemBase", "Unhandled body format type."); } ItemUtility.SetItemBody(calendarItemBase, BodyFormat.TextPlain, formParameter); calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged; } } else { ItemUtility.SetItemBody(calendarItemBase, BodyFormat.TextPlain, string.Empty); calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged; } bool flag4 = AttachmentUtility.PromoteInlineAttachments(calendarItemBase); if (flag4) { calendarItemBase.Load(); } } bool flag5 = CalendarUtilities.CheckIsLocationGenerated(calendarItemBase); calendarItemUpdateFlags |= EditCalendarItemHelper.AddAttendees(calendarItemBase.AttendeeCollection, AttendeeType.Required, "txtto", userContext, request); calendarItemUpdateFlags |= EditCalendarItemHelper.AddAttendees(calendarItemBase.AttendeeCollection, AttendeeType.Optional, "txtcc", userContext, request); EditCalendarItemHelper.CalendarItemUpdateFlags calendarItemUpdateFlags2 = EditCalendarItemHelper.AddAttendees(calendarItemBase.AttendeeCollection, AttendeeType.Resource, "txtbcc", userContext, request); calendarItemUpdateFlags |= calendarItemUpdateFlags2; if ((flag5 || string.IsNullOrEmpty(calendarItemBase.Location)) && (calendarItemUpdateFlags2 & EditCalendarItemHelper.CalendarItemUpdateFlags.AttendeesChanged) != EditCalendarItemHelper.CalendarItemUpdateFlags.None && CalendarUtilities.GenerateAndSetLocation(calendarItemBase)) { calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.LocationChanged; } Exception ex2 = null; try { if (flag3 != calendarItemBase.IsAllDayEvent) { calendarItemBase.IsAllDayEvent = flag3; calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.TimeChanged; } EditCalendarItemHelper.CalendarItemUpdateFlags calendarItemUpdateFlags3; if (EditCalendarItemHelper.ParseDateTimeRange(request, calendarItemBase, flag3, true, out errorMessage, out calendarItemUpdateFlags3, userContext)) { calendarItemUpdateFlags |= calendarItemUpdateFlags3; } } catch (StoragePermanentException ex3) { ex2 = ex3; } catch (StorageTransientException ex4) { ex2 = ex4; } if (ex2 != null) { ErrorInformation exceptionHandlingInformation = Utilities.GetExceptionHandlingInformation(ex2, userContext.MailboxIdentity); errorMessage = exceptionHandlingInformation.Message; } return(calendarItemUpdateFlags); }