Esempio n. 1
0
        private static EditCalendarItemHelper.CalendarItemUpdateFlags AddAttendees(IAttendeeCollection attendees, AttendeeType attendeeType, string wellName, UserContext userContext, HttpRequest request)
        {
            EditCalendarItemHelper.CalendarItemUpdateFlags calendarItemUpdateFlags = EditCalendarItemHelper.CalendarItemUpdateFlags.None;
            bool        flag          = false;
            Participant participant   = null;
            string      formParameter = Utilities.GetFormParameter(request, wellName, false);

            if (string.IsNullOrEmpty(formParameter))
            {
                return(calendarItemUpdateFlags);
            }
            ArrayList arrayList = new ArrayList();

            RecipientWell.ResolveRecipients(formParameter, arrayList, userContext, userContext.UserOptions.CheckNameInContactsFirst);
            for (int i = 0; i < arrayList.Count; i++)
            {
                RecipientWellNode recipientWellNode = (RecipientWellNode)arrayList[i];
                flag |= Utilities.CreateExchangeParticipant(out participant, recipientWellNode.DisplayName, recipientWellNode.RoutingAddress, recipientWellNode.RoutingType, recipientWellNode.AddressOrigin, recipientWellNode.StoreObjectId, recipientWellNode.EmailAddressIndex);
                if (participant != null)
                {
                    attendees.Add(participant, attendeeType, null, null, false);
                    calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.AttendeesChanged;
                }
            }
            if (flag)
            {
                calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.HasUnresolvedAttendees;
            }
            return(calendarItemUpdateFlags);
        }
Esempio n. 2
0
        public static EditCalendarItemHelper.CalendarItemUpdateFlags UpdateImportance(CalendarItemBase calendarItemBase, HttpRequest request)
        {
            EditCalendarItemHelper.CalendarItemUpdateFlags calendarItemUpdateFlags = EditCalendarItemHelper.CalendarItemUpdateFlags.None;
            if (calendarItemBase == null)
            {
                throw new ArgumentNullException("calendarItemBase");
            }
            if (request == null)
            {
                throw new ArgumentNullException("request");
            }
            string formParameter = Utilities.GetFormParameter(request, "hidmsgimp", false);

            if (!string.IsNullOrEmpty(formParameter))
            {
                int num;
                if (!int.TryParse(formParameter, out num))
                {
                    throw new OwaInvalidRequestException("Invalid form parameter:importance");
                }
                Importance importance = (Importance)num;
                if (calendarItemBase.Importance != importance)
                {
                    calendarItemBase.Importance = importance;
                    calendarItemUpdateFlags    |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged;
                }
            }
            return(calendarItemUpdateFlags);
        }
        private EditCalendarItemPreFormAction.RedirectTo DoAction(string commandPost, EditCalendarItemHelper.CalendarItemUpdateFlags storeUpdateFlags, ref PreFormActionResponse response, out InfobarMessage infobarMessage)
        {
            infobarMessage = null;
            EditCalendarItemHelper.CalendarItemUpdateFlags calendarItemUpdateFlags = EditCalendarItemHelper.CalendarItemUpdateFlags.None;
            string text = null;

            EditCalendarItemPreFormAction.CalendarTab calendarTab = (EditCalendarItemPreFormAction.CalendarTab)RequestParser.TryGetIntValueFromForm(this.request, "hidtab", 0);
            if (Utilities.IsPostRequest(this.request) && !string.Equals(commandPost, "new", StringComparison.Ordinal) && !string.Equals(commandPost, "cls", StringComparison.Ordinal))
            {
                if (calendarTab == EditCalendarItemPreFormAction.CalendarTab.Scheduling)
                {
                    calendarItemUpdateFlags = EditCalendarItemHelper.UpdateImportance(this.calendarItemBase, this.request);
                }
                else
                {
                    calendarItemUpdateFlags = EditCalendarItemHelper.UpdateCalendarItemValues(this.calendarItemBase, this.userContext, this.request, out text);
                }
                if (!string.IsNullOrEmpty(text))
                {
                    infobarMessage = InfobarMessage.CreateText(text, InfobarMessageType.Error);
                    return(EditCalendarItemPreFormAction.RedirectTo.EditCalendarItem);
                }
                if (this.calendarItemBase.AttendeesChanged)
                {
                    calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.AttendeesChanged;
                }
            }
            EditCalendarItemHelper.CalendarItemUpdateFlags calendarItemUpdateFlags2 = calendarItemUpdateFlags | storeUpdateFlags;
            EditCalendarItemHelper.CancelRangeType         cancelRangeType          = EditCalendarItemHelper.CancelRangeType.None;
            ExDateTime cancelFromDateTime = ExDateTime.MinValue;
            string     formParameter      = Utilities.GetFormParameter(this.request, "delprompt", false);

            if (!string.IsNullOrEmpty(formParameter))
            {
                if (string.Equals(formParameter, "2", StringComparison.Ordinal))
                {
                    cancelRangeType = EditCalendarItemHelper.CancelRangeType.All;
                }
                else if (string.Equals(formParameter, "1", StringComparison.Ordinal))
                {
                    cancelRangeType    = EditCalendarItemHelper.CancelRangeType.FromDate;
                    cancelFromDateTime = CalendarUtilities.ParseDateTimeFromForm(this.request, "seldelY", "seldelM", "seldelD", null, this.userContext);
                }
                else
                {
                    if (!string.Equals(formParameter, "0", StringComparison.Ordinal))
                    {
                        throw new OwaInvalidRequestException("Invalid cancel prompt radio button value.");
                    }
                    cancelRangeType = EditCalendarItemHelper.CancelRangeType.Occurrence;
                }
            }
            EditCalendarItemPreFormAction.RedirectTo result = EditCalendarItemPreFormAction.RedirectTo.None;
            if (commandPost != null)
            {
                if (< PrivateImplementationDetails > { 83F 8DD 10 - 61AE - 4283 - B829 - 2F 464F 055E61 }.$$method0x600016f - 1 == null)
Esempio n. 4
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);
        }
Esempio n. 5
0
        public override EditCalendarItemHelper.CalendarItemUpdateFlags CopyTo(CalendarItemBase calendarItemBase)
        {
            EditCalendarItemHelper.CalendarItemUpdateFlags calendarItemUpdateFlags = base.CopyTo(calendarItemBase);
            CalendarItem calendarItem = calendarItemBase as CalendarItem;

            if (calendarItem != null && !CalendarItemData.IsRecurrenceEqual(calendarItem.Recurrence, this.recurrence))
            {
                calendarItem.Recurrence  = CalendarItemData.CloneRecurrence(this.recurrence);
                calendarItemUpdateFlags |= EditCalendarItemHelper.CalendarItemUpdateFlags.OtherChanged;
            }
            return(calendarItemUpdateFlags);
        }
        public PreFormActionResponse Execute(OwaContext owaContext, out ApplicationElement applicationElement, out string type, out string state, out string action)
        {
            if (owaContext == null)
            {
                throw new ArgumentNullException("owaContext", "owaContext is null.");
            }
            if (owaContext.HttpContext == null)
            {
                throw new ArgumentNullException("owaContext", "owaContext.HttpContext is null.");
            }
            applicationElement = ApplicationElement.NotSet;
            type   = null;
            state  = null;
            action = null;
            PreFormActionResponse preFormActionResponse = new PreFormActionResponse();

            preFormActionResponse.ApplicationElement = ApplicationElement.Item;
            preFormActionResponse.Type   = "IPM.Appointment";
            preFormActionResponse.Action = string.Empty;
            preFormActionResponse.State  = string.Empty;
            this.request     = owaContext.HttpContext.Request;
            this.userContext = owaContext.UserContext;
            InfobarMessage infobarMessage = null;
            StoreObjectId  storeObjectId  = null;
            string         changeKey      = null;
            string         action2        = owaContext.FormsRegistryContext.Action;
            string         text;

            if (string.Equals(action2, "New", StringComparison.Ordinal))
            {
                text = "new";
            }
            else
            {
                if (!Utilities.IsPostRequest(this.request))
                {
                    return(this.userContext.LastClientViewState.ToPreFormActionResponse());
                }
                text = Utilities.GetFormParameter(this.request, "hidcmdpst");
                string formParameter = Utilities.GetFormParameter(this.request, "hidid", false);
                changeKey = Utilities.GetFormParameter(this.request, "hidchk", false);
                if (!string.IsNullOrEmpty(formParameter))
                {
                    storeObjectId = Utilities.CreateStoreObjectId(this.userContext.MailboxSession, formParameter);
                }
            }
            StoreObjectId calendarFolderId = EditCalendarItemHelper.GetCalendarFolderId(this.request, this.userContext);
            bool          syncCalendarItem = true;

            if (text.Equals("attch", StringComparison.Ordinal))
            {
                syncCalendarItem = false;
            }
            bool flag = true;

            try
            {
                EditCalendarItemHelper.CalendarItemUpdateFlags storeUpdateFlags = EditCalendarItemHelper.CalendarItemUpdateFlags.None;
                if (!text.Equals("cls", StringComparison.Ordinal))
                {
                    storeUpdateFlags = EditCalendarItemHelper.GetCalendarItem(this.userContext, storeObjectId, calendarFolderId, changeKey, syncCalendarItem, out this.calendarItemBase);
                }
                switch (this.DoAction(text, storeUpdateFlags, ref preFormActionResponse, out infobarMessage))
                {
                case EditCalendarItemPreFormAction.RedirectTo.None:
                    throw new OwaInvalidRequestException("Unhandled redirection.");

                case EditCalendarItemPreFormAction.RedirectTo.AddressBook:
                    preFormActionResponse = EditMessageHelper.RedirectToPeoplePicker(owaContext, this.calendarItemBase, AddressBook.Mode.EditCalendar);
                    EditCalendarItemHelper.CreateUserContextData(this.userContext, this.calendarItemBase);
                    break;

                case EditCalendarItemPreFormAction.RedirectTo.ADPage:
                    preFormActionResponse = EditMessageHelper.RedirectToRecipient(owaContext, this.calendarItemBase, AddressBook.Mode.EditCalendar);
                    EditCalendarItemHelper.CreateUserContextData(this.userContext, this.calendarItemBase);
                    break;

                case EditCalendarItemPreFormAction.RedirectTo.AttachmentManager:
                    if (this.calendarItemBase.Id == null)
                    {
                        CalendarUtilities.SaveCalendarItem(this.calendarItemBase, this.userContext, out infobarMessage);
                    }
                    using (CalendarItemBase calendarItemBase = EditCalendarItemHelper.CreateDraft(this.userContext, null))
                    {
                        CalendarItemBaseData userContextData = EditCalendarItemHelper.GetUserContextData(this.userContext);
                        userContextData.CopyTo(calendarItemBase);
                        string text2;
                        EditCalendarItemHelper.UpdateCalendarItemValues(calendarItemBase, this.userContext, this.request, out text2);
                        EditCalendarItemHelper.CreateUserContextData(this.userContext, calendarItemBase);
                        if (this.calendarItemBase.Id != null)
                        {
                            CalendarItemBaseData userContextData2 = EditCalendarItemHelper.GetUserContextData(this.userContext);
                            userContextData2.Id        = this.calendarItemBase.Id.ObjectId;
                            userContextData2.ChangeKey = this.calendarItemBase.Id.ChangeKeyAsBase64String();
                        }
                    }
                    if (infobarMessage == null)
                    {
                        this.RedirectToAttachmentManager(owaContext, preFormActionResponse);
                    }
                    else
                    {
                        owaContext.PreFormActionData = this.calendarItemBase;
                        flag = false;
                        this.RedirectToEdit(owaContext, infobarMessage, preFormActionResponse);
                    }
                    break;

                case EditCalendarItemPreFormAction.RedirectTo.CalendarDailyView:
                    EditCalendarItemHelper.ClearUserContextData(this.userContext);
                    preFormActionResponse = this.userContext.LastClientViewState.ToPreFormActionResponse();
                    break;

                case EditCalendarItemPreFormAction.RedirectTo.EditCalendarItem:
                    EditCalendarItemHelper.CreateUserContextData(this.userContext, this.calendarItemBase);
                    owaContext.PreFormActionData = this.calendarItemBase;
                    flag = false;
                    this.RedirectToEdit(owaContext, infobarMessage, preFormActionResponse);
                    break;

                case EditCalendarItemPreFormAction.RedirectTo.EditRecurrence:
                    EditCalendarItemHelper.CreateUserContextData(this.userContext, this.calendarItemBase);
                    owaContext.PreFormActionData = CalendarItemBaseData.Create(this.calendarItemBase);
                    preFormActionResponse.Action = "EditRecurrence";
                    if (this.calendarItemBase.IsDirty)
                    {
                        preFormActionResponse.AddParameter("cd", "1");
                    }
                    break;

                case EditCalendarItemPreFormAction.RedirectTo.SchedulingTab:
                    EditCalendarItemHelper.CreateUserContextData(this.userContext, this.calendarItemBase);
                    owaContext.PreFormActionData = this.calendarItemBase;
                    this.RedirectToSchedulingTab(owaContext, infobarMessage, preFormActionResponse);
                    flag = false;
                    break;

                default:
                    throw new OwaInvalidRequestException("Unhandled redirection enum value in EditCalendarItemPreFormAction.");
                }
            }
            catch
            {
                flag = true;
                EditCalendarItemHelper.ClearUserContextData(this.userContext);
                throw;
            }
            finally
            {
                if (flag && this.calendarItemBase != null)
                {
                    this.calendarItemBase.Dispose();
                    this.calendarItemBase = null;
                }
            }
            return(preFormActionResponse);
        }
Esempio n. 7
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);
 }
Esempio n. 8
0
 private static bool ParseDateTimeRange(HttpRequest request, CalendarItemBase calendarItem, bool isAllDayEvent, bool autoFixEndDate, out string errorMessage, out EditCalendarItemHelper.CalendarItemUpdateFlags updateFlags, UserContext userContext)
 {
     updateFlags  = EditCalendarItemHelper.CalendarItemUpdateFlags.None;
     errorMessage = null;
     if (!string.IsNullOrEmpty(Utilities.GetFormParameter(request, "selSM", false)))
     {
         ExDateTime exDateTime  = CalendarUtilities.ParseDateTimeFromForm(request, "selSY", "selSM", "selSD", isAllDayEvent ? null : "selST", userContext);
         ExDateTime exDateTime2 = CalendarUtilities.ParseDateTimeFromForm(request, "selEY", "selEM", "selED", isAllDayEvent ? null : "selET", userContext);
         if (isAllDayEvent)
         {
             exDateTime2 = exDateTime2.IncrementDays(1);
         }
         if (exDateTime > exDateTime2)
         {
             if (!autoFixEndDate)
             {
                 errorMessage = LocalizedStrings.GetNonEncoded(107113300);
                 return(false);
             }
             exDateTime2 = exDateTime.AddMinutes(60.0);
         }
         if (!exDateTime.Equals(calendarItem.StartTime))
         {
             updateFlags           |= EditCalendarItemHelper.CalendarItemUpdateFlags.TimeChanged;
             calendarItem.StartTime = exDateTime;
         }
         if (!exDateTime2.Equals(calendarItem.EndTime))
         {
             updateFlags         |= EditCalendarItemHelper.CalendarItemUpdateFlags.TimeChanged;
             calendarItem.EndTime = exDateTime2;
         }
     }
     return(true);
 }
Esempio n. 9
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);
        }