Example #1
0
        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);
        }
Example #3
0
 public static void CreateUserContextData(UserContext userContext, CalendarItemBase calendarItemBase)
 {
     userContext.WorkingData = CalendarItemBaseData.Create(calendarItemBase);
 }
Example #4
0
 public static void SetUserContextData(UserContext userContext, CalendarItemBaseData calendarItemBaseData)
 {
     userContext.WorkingData = calendarItemBaseData;
 }
Example #5
0
        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);
        }