예제 #1
0
        // Token: 0x060020D7 RID: 8407 RVA: 0x000BD350 File Offset: 0x000BB550
        protected override void OnLoad(EventArgs e)
        {
            string queryStringParameter = Utilities.GetQueryStringParameter(base.Request, "exdltdrft", false);

            if (!string.IsNullOrEmpty(queryStringParameter))
            {
                this.DeleteExistingDraft = true;
            }
            string queryStringParameter2 = Utilities.GetQueryStringParameter(base.Request, "fId", false);

            if (queryStringParameter2 != null)
            {
                this.targetFolderId = OwaStoreObjectId.CreateFromString(queryStringParameter2);
            }
            if (base.Item == null)
            {
                string queryStringParameter3 = Utilities.GetQueryStringParameter(base.Request, "email", false);
                if (!string.IsNullOrEmpty(queryStringParameter3))
                {
                    StoreObjectId mailboxItemStoreObjectId = null;
                    if (MailToParser.TryParseMailTo(queryStringParameter3, base.UserContext, out mailboxItemStoreObjectId))
                    {
                        base.OwaContext.PreFormActionId = OwaStoreObjectId.CreateFromMailboxItemId(mailboxItemStoreObjectId);
                        this.DeleteExistingDraft        = true;
                    }
                }
            }
            string queryStringParameter4 = Utilities.GetQueryStringParameter(base.Request, "fRABcc", false);

            this.isReplyAllBcc = (0 == string.CompareOrdinal("1", queryStringParameter4));
        }
        // Token: 0x060001C8 RID: 456 RVA: 0x00010DA0 File Offset: 0x0000EFA0
        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");
            }
            if (owaContext.HttpContext.Request == null)
            {
                throw new ArgumentNullException("owaContext", "owaContext.HttpContext.Request 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;
            if (!Utilities.IsPostRequest(this.request))
            {
                return(this.userContext.LastClientViewState.ToPreFormActionResponse());
            }
            InfobarMessage   value = null;
            string           queryStringParameter = Utilities.GetQueryStringParameter(this.request, "a", false);
            CalendarItemData calendarItemData     = EditRecurrencePreFormAction.CreateCalendarItemDataFromRequest(this.request, this.userContext);
            bool             flag = false;
            string           a;

            EditRecurrencePreFormAction.RedirectTo redirectTo;
            if ((a = queryStringParameter) != null)
            {
                if (a == "ChangeRecurrenceMode")
                {
                    if (!string.IsNullOrEmpty(Utilities.GetQueryStringParameter(this.request, "d", false)))
                    {
                        preFormActionResponse.AddParameter("d", "1");
                    }
                    string formParameter = Utilities.GetFormParameter(this.request, "hidcidrt", true);
                    int    num;
                    if (!string.IsNullOrEmpty(formParameter) && int.TryParse(formParameter, out num) && num > 0)
                    {
                        preFormActionResponse.AddParameter("cd", "1");
                    }
                    redirectTo = EditRecurrencePreFormAction.RedirectTo.EditRecurrence;
                    goto IL_217;
                }
                if (a == "CloseRecurrence")
                {
                    redirectTo = EditRecurrencePreFormAction.RedirectTo.EditCalendarItem;
                    goto IL_217;
                }
                if (a == "RemoveRecurrence")
                {
                    calendarItemData.Recurrence = null;
                    flag       = true;
                    redirectTo = EditRecurrencePreFormAction.RedirectTo.EditCalendarItem;
                    goto IL_217;
                }
                if (!(a == "SaveRecurrence"))
                {
                    if (a == "ConfirmedSaveRecurrence")
                    {
                        flag       = true;
                        redirectTo = EditRecurrencePreFormAction.RedirectTo.EditCalendarItem;
                        goto IL_217;
                    }
                }
                else
                {
                    bool flag2 = EditRecurrencePreFormAction.ValidateCalendarItemData(this.userContext, calendarItemData, out value);
                    if (!flag2)
                    {
                        redirectTo = EditRecurrencePreFormAction.RedirectTo.EditRecurrence;
                        goto IL_217;
                    }
                    if (EditRecurrencePreFormAction.CheckNeedPatternChangeConfirmation(this.userContext, calendarItemData))
                    {
                        redirectTo = EditRecurrencePreFormAction.RedirectTo.EditRecurrence;
                        preFormActionResponse.AddParameter("pcp", "1");
                        goto IL_217;
                    }
                    flag       = true;
                    redirectTo = EditRecurrencePreFormAction.RedirectTo.EditCalendarItem;
                    goto IL_217;
                }
            }
            redirectTo = EditRecurrencePreFormAction.RedirectTo.EditRecurrence;
IL_217:
            if (flag)
            {
                CalendarItemData calendarItemData2 = EditCalendarItemHelper.GetUserContextData(this.userContext) as CalendarItemData;
                if (calendarItemData2 == null)
                {
                    throw new OwaInvalidRequestException("UserContext didn't have a CalendarItemData object.");
                }
                calendarItemData2.Recurrence = calendarItemData.Recurrence;
                if (calendarItemData.Recurrence != null)
                {
                    calendarItemData2.StartTime     = calendarItemData.StartTime;
                    calendarItemData2.EndTime       = calendarItemData.EndTime;
                    calendarItemData2.IsAllDayEvent = calendarItemData.IsAllDayEvent;
                }
            }
            switch (redirectTo)
            {
            case EditRecurrencePreFormAction.RedirectTo.None:
                throw new OwaInvalidRequestException("Unhandled redirection in EditRecurrencePreFormAction.");

            case EditRecurrencePreFormAction.RedirectTo.EditRecurrence:
                owaContext.PreFormActionData = calendarItemData;
                preFormActionResponse.Action = "EditRecurrence";
                break;

            case EditRecurrencePreFormAction.RedirectTo.EditCalendarItem:
                preFormActionResponse.Action = "Open";
                if (calendarItemData.Id != null)
                {
                    owaContext.PreFormActionId = OwaStoreObjectId.CreateFromMailboxItemId(calendarItemData.Id);
                }
                break;

            default:
                throw new OwaInvalidRequestException("Unhandled redirection enum value in EditRecurrencePreFormAction.");
            }
            owaContext[OwaContextProperty.InfobarMessage] = value;
            return(preFormActionResponse);
        }