Esempio n. 1
0
        protected override void OnLoad(EventArgs e)
        {
            base.FilteredView = false;
            base.OnLoad(e);
            EditCalendarItemHelper.ClearUserContextData(base.UserContext);
            this.CreateExpiringPasswordNotification();
            this.CreateOutOfOfficeNotification();
            int num = RequestParser.TryGetIntValueFromQueryString(base.Request, "slUsng", -1);

            if (num >= 0 && num <= 2)
            {
                this.selectedUsing = (SecondaryNavigationArea)num;
            }
            if (base.UserContext.IsWebPartRequest)
            {
                base.UserContext.LastClientViewState = new WebPartModuleViewState(base.FolderId, base.Folder.ClassName, base.PageNumber, NavigationModule.Mail, base.SortOrder, base.SortedColumn);
                return;
            }
            if (base.FilteredView)
            {
                base.UserContext.LastClientViewState = new MessageModuleSearchViewState(base.UserContext.LastClientViewState, base.FolderId, base.OwaContext.FormsRegistryContext.Type, this.selectedUsing, base.PageNumber, base.SearchString, base.SearchScope);
                return;
            }
            base.UserContext.LastClientViewState = new MessageModuleViewState(base.FolderId, base.OwaContext.FormsRegistryContext.Type, this.selectedUsing, base.PageNumber);
        }
Esempio n. 2
0
        // Token: 0x060004BB RID: 1211 RVA: 0x0002769C File Offset: 0x0002589C
        private bool LoadCalendarItem(StoreObjectId folderId)
        {
            string        queryStringParameter = Utilities.GetQueryStringParameter(base.Request, "id", false);
            string        formParameter        = Utilities.GetFormParameter(base.Request, "hidid", false);
            string        formParameter2       = Utilities.GetFormParameter(base.Request, "hidchk", false);
            StoreObjectId storeObjectId        = null;

            if (base.OwaContext.PreFormActionId != null)
            {
                storeObjectId = base.OwaContext.PreFormActionId.StoreObjectId;
            }
            else if (base.Request.RequestType == "GET" && !string.IsNullOrEmpty(queryStringParameter))
            {
                storeObjectId = Utilities.CreateStoreObjectId(base.UserContext.MailboxSession, queryStringParameter);
            }
            else if (Utilities.IsPostRequest(base.Request) && !string.IsNullOrEmpty(formParameter) && !string.IsNullOrEmpty(formParameter2))
            {
                storeObjectId = Utilities.CreateStoreObjectId(base.UserContext.MailboxSession, formParameter);
            }
            CalendarItemBase calendarItemBase;

            EditCalendarItemHelper.GetCalendarItem(base.UserContext, storeObjectId, folderId, formParameter2, true, out calendarItemBase);
            this.CalendarItemBase = calendarItemBase;
            return(this.CalendarItemBase != null);
        }
Esempio n. 3
0
 // Token: 0x060004CB RID: 1227 RVA: 0x00027C85 File Offset: 0x00025E85
 protected override void OnUnload(EventArgs e)
 {
     if (this.CalendarItemBase != null)
     {
         EditCalendarItemHelper.CreateUserContextData(base.UserContext, this.CalendarItemBase);
     }
     base.OnUnload(e);
 }
Esempio n. 4
0
        internal static bool CancelCalendarItem(UserContext userContext, CalendarItemBase calendarItemBase, EditCalendarItemHelper.CancelRangeType cancelRange, ExDateTime cancelFromDateTime, out InfobarMessage infobarMessage)
        {
            bool result = true;

            infobarMessage = null;
            CalendarItem calendarItem = calendarItemBase as CalendarItem;

            try
            {
                if (calendarItem == null)
                {
                    StoreObjectId masterStoreObjectId = CalendarUtilities.GetMasterStoreObjectId(calendarItemBase);
                    calendarItem = Utilities.GetItem <CalendarItem>(userContext, masterStoreObjectId, new PropertyDefinition[0]);
                    if (calendarItem != null)
                    {
                        calendarItem.OpenAsReadWrite();
                    }
                }
                if (cancelRange == EditCalendarItemHelper.CancelRangeType.Occurrence || cancelRange == EditCalendarItemHelper.CancelRangeType.None)
                {
                    EditCalendarItemHelper.CancelCalendarItem(userContext, calendarItemBase);
                }
                else if (cancelRange == EditCalendarItemHelper.CancelRangeType.All)
                {
                    EditCalendarItemHelper.CancelCalendarItem(userContext, calendarItem);
                }
                else if (cancelRange == EditCalendarItemHelper.CancelRangeType.FromDate)
                {
                    int cancelRecurrenceCount = CalendarItemUtilities.GetCancelRecurrenceCount(calendarItem, cancelFromDateTime);
                    if (cancelRecurrenceCount == 0)
                    {
                        EditCalendarItemHelper.CancelCalendarItem(userContext, calendarItem);
                    }
                    else if (cancelRecurrenceCount > 0)
                    {
                        calendarItem.Recurrence = new Recurrence(calendarItem.Recurrence.Pattern, new EndDateRecurrenceRange(calendarItem.Recurrence.Range.StartDate, cancelFromDateTime.IncrementDays(-1)));
                        if (calendarItem.IsMeeting && calendarItem.MeetingRequestWasSent)
                        {
                            result = CalendarUtilities.SendMeetingMessages(userContext, calendarItem, true, out infobarMessage);
                        }
                        else
                        {
                            result = CalendarUtilities.SaveCalendarItem(calendarItem, userContext, out infobarMessage);
                        }
                    }
                }
            }
            finally
            {
                if (calendarItem != null && calendarItem != calendarItemBase)
                {
                    calendarItem.Dispose();
                }
            }
            return(result);
        }
Esempio n. 5
0
        // Token: 0x060004BA RID: 1210 RVA: 0x00027480 File Offset: 0x00025680
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            string action = this.Action;

            if (Utilities.IsPostRequest(base.Request) && string.Equals(action, "Delete", StringComparison.Ordinal))
            {
                this.isBeingCanceled = true;
            }
            CalendarItemBase calendarItemBase = base.OwaContext.PreFormActionData as CalendarItemBase;

            this.folderId = EditCalendarItemHelper.GetCalendarFolderId(base.Request, base.UserContext);
            if (calendarItemBase != null)
            {
                this.CalendarItemBase             = calendarItemBase;
                base.OwaContext.PreFormActionData = null;
            }
            else
            {
                this.LoadCalendarItem(this.folderId);
                bool flag = string.Equals(action, "New", StringComparison.Ordinal) && string.IsNullOrEmpty(Utilities.GetQueryStringParameter(base.Request, "id", false));
                if (flag)
                {
                    bool isMeeting = Utilities.GetQueryStringParameter(base.Request, "mr", false) != null;
                    this.CalendarItemBase.IsMeeting = isMeeting;
                }
            }
            if (Utilities.GetQueryStringParameter(base.Request, "sndpt", false) != null)
            {
                CalendarItemUtilities.BuildSendConfirmDialogPrompt(this.calendarItemBase, out this.sendIssuesPrompt);
            }
            if (!this.IsUnsaved && !this.isBeingCanceled)
            {
                CalendarUtilities.AddCalendarInfobarMessages(base.Infobar, this.CalendarItemBase, null, base.UserContext);
            }
            if (!this.IsUnsaved && this.IsOccurrence && !this.isBeingCanceled && this.CalendarItemBase.IsOrganizer())
            {
                SanitizedHtmlString messageHtml = SanitizedHtmlString.Format(LocalizedStrings.GetHtmlEncoded(538626087), new object[]
                {
                    "<a href=\"#\" onClick=\"return onClkES()\">",
                    "</a>"
                });
                base.Infobar.AddMessageHtml(messageHtml, InfobarMessageType.Informational);
            }
            this.recipientWell = new CalendarItemRecipientWell(base.UserContext, this.CalendarItemBase);
            this.toolbar       = new EditCalendarItemToolbar(this.IsUnsaved, this.IsMeeting, this.CalendarItemBase.MeetingRequestWasSent, this.CalendarItemBase.Importance, this.CalendarItemBase.CalendarItemType, base.Response.Output, true, this.isBeingCanceled);
            base.CreateAttachmentHelpers(AttachmentWellType.ReadWrite);
            CalendarModuleViewState calendarModuleViewState = base.UserContext.LastClientViewState as CalendarModuleViewState;

            if (calendarModuleViewState != null)
            {
                this.lastAccessedYear = calendarModuleViewState.DateTime.Year;
            }
        }
Esempio n. 6
0
        internal static InfobarMessage BuildCancellationPrompt(CalendarItemBase calendarItemBase, UserContext userContext)
        {
            bool flag  = calendarItemBase.CalendarItemType != CalendarItemType.Single;
            bool flag2 = calendarItemBase.IsMeeting && calendarItemBase.MeetingRequestWasSent;

            if (!flag && !flag2)
            {
                throw new ArgumentException("The input calendarItemBase doesn't need a cancellation prompt.");
            }
            SanitizedHtmlString bodyHtml = null;
            SanitizedHtmlString messageHtml;

            if (flag)
            {
                if (calendarItemBase.IsMeeting)
                {
                    messageHtml = SanitizedHtmlString.FromStringId(-2063563644);
                }
                else
                {
                    messageHtml = SanitizedHtmlString.FromStringId(78467316);
                }
                CalendarModuleViewState calendarModuleViewState = userContext.LastClientViewState as CalendarModuleViewState;
                ExDateTime cancelFromDate;
                if (calendarModuleViewState != null)
                {
                    cancelFromDate = calendarModuleViewState.DateTime;
                }
                else
                {
                    cancelFromDate = DateTimeUtilities.GetLocalTime();
                }
                bodyHtml = EditCalendarItemHelper.BuildCancelRecurringTable(calendarItemBase.CalendarItemType, cancelFromDate);
            }
            else
            {
                messageHtml = SanitizedHtmlString.FromStringId(-240976491);
            }
            SanitizedHtmlString footerHtml;

            if (!calendarItemBase.IsMeeting)
            {
                footerHtml = SanitizedHtmlString.FromStringId(2058056132);
            }
            else if (!calendarItemBase.MeetingRequestWasSent)
            {
                footerHtml = SanitizedHtmlString.FromStringId(2133761911);
            }
            else
            {
                footerHtml = SanitizedHtmlString.FromStringId(-1210628592);
            }
            return(InfobarMessage.CreatePromptHtml(messageHtml, bodyHtml, footerHtml));
        }
Esempio n. 7
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);
        }
Esempio n. 9
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            string queryStringParameter = Utilities.GetQueryStringParameter(base.Request, "ctx");
            int    num;

            if (!int.TryParse(queryStringParameter, out num))
            {
                throw new OwaInvalidRequestException("Context parameter is having invalid format");
            }
            if (num < 0 || num > 4)
            {
                throw new OwaInvalidRequestException("Invalid context value in the querystring parameter");
            }
            this.viewMode = (AddressBook.Mode)num;
            if (this.viewMode == AddressBook.Mode.None)
            {
                this.viewMode = AddressBook.Mode.Lookup;
            }
            if (base.IsPostFromMyself())
            {
                this.action              = Utilities.GetFormParameter(base.Request, "hidcmdpst", false);
                this.searchString        = Utilities.GetFormParameter(base.Request, "hidss", false);
                this.pageNumber          = RequestParser.TryGetIntValueFromForm(base.Request, "hidpg", 1);
                this.sortColumn          = (ColumnId)RequestParser.TryGetIntValueFromForm(base.Request, "hidcid", 11);
                this.sortOrder           = (SortOrder)RequestParser.TryGetIntValueFromForm(base.Request, "hidso", 1);
                this.addressBookToSearch = Utilities.GetFormParameter(base.Request, "hidAB", false);
                if (string.IsNullOrEmpty(this.addressBookToSearch))
                {
                    throw new OwaInvalidRequestException("addressbookGuid can't be null");
                }
                this.recipientWell = (RecipientItemType)RequestParser.TryGetIntValueFromForm(base.Request, "hidrw", 1);
            }
            else
            {
                this.searchString = Utilities.GetQueryStringParameter(base.Request, "sch", false);
                if (!string.IsNullOrEmpty(this.searchString))
                {
                    Utilities.VerifySearchCanaryInGetRequest(base.Request);
                }
                this.pageNumber          = RequestParser.TryGetIntValueFromQueryString(base.Request, "pg", 1);
                this.sortColumn          = (ColumnId)RequestParser.TryGetIntValueFromQueryString(base.Request, "cid", 11);
                this.sortOrder           = (SortOrder)RequestParser.TryGetIntValueFromQueryString(base.Request, "so", 1);
                this.addressBookToSearch = Utilities.GetQueryStringParameter(base.Request, "ab", false);
                this.recipientWell       = (RecipientItemType)RequestParser.TryGetIntValueFromQueryString(base.Request, "rw", 1);
            }
            this.GetSearchLocation();
            if (AddressBook.IsEditingMode(this.viewMode))
            {
                if (!base.IsPostFromMyself())
                {
                    bool          required = this.viewMode != AddressBook.Mode.EditCalendar;
                    StoreObjectId itemId   = QueryStringUtilities.CreateItemStoreObjectId(base.UserContext.MailboxSession, base.Request, required);
                    base.Item = AddressBookHelper.GetItem(base.UserContext, this.viewMode, itemId, null);
                }
                else
                {
                    StoreObjectId itemId2       = null;
                    string        formParameter = Utilities.GetFormParameter(base.Request, "hidid", true);
                    if (!string.IsNullOrEmpty(formParameter))
                    {
                        itemId2 = Utilities.CreateStoreObjectId(base.UserContext.MailboxSession, formParameter);
                    }
                    string formParameter2 = Utilities.GetFormParameter(base.Request, "hidchk", true);
                    base.Item = AddressBookHelper.GetItem(base.UserContext, this.viewMode, itemId2, formParameter2);
                    string a;
                    if ((a = this.action) != null)
                    {
                        if (!(a == "addrcp"))
                        {
                            if (a == "rmrcp")
                            {
                                int intValueFromForm = RequestParser.GetIntValueFromForm(base.Request, "hidri");
                                if (this.viewMode == AddressBook.Mode.EditMessage || this.viewMode == AddressBook.Mode.EditMeetingResponse)
                                {
                                    if (intValueFromForm >= 0 && intValueFromForm < this.Message.Recipients.Count)
                                    {
                                        this.Message.Recipients.RemoveAt(intValueFromForm);
                                        AddressBookHelper.SaveItem(base.Item);
                                    }
                                }
                                else if (this.viewMode == AddressBook.Mode.EditCalendar)
                                {
                                    CalendarUtilities.RemoveAttendeeAt(this.CalendarItemBase, intValueFromForm);
                                    EditCalendarItemHelper.CreateUserContextData(base.UserContext, this.CalendarItemBase);
                                }
                            }
                        }
                        else
                        {
                            int num2 = RequestParser.TryGetIntValueFromQueryString(base.Request, "rt", 1);
                            if (num2 == 1)
                            {
                                this.type = RecipientItemType.To;
                            }
                            else if (num2 == 2)
                            {
                                this.type = RecipientItemType.Cc;
                            }
                            else if (num2 == 3)
                            {
                                this.type = RecipientItemType.Bcc;
                            }
                            string text = base.Request.Form["chkRcpt"];
                            if (!string.IsNullOrEmpty(text))
                            {
                                this.ids = text.Split(new char[]
                                {
                                    ','
                                });
                                if (this.searchLocation == AddressBook.SearchLocation.AddressBook)
                                {
                                    AddressBookHelper.AddRecipientsToDraft(this.ids, base.Item, this.type, base.UserContext);
                                }
                                else
                                {
                                    AddressBookHelper.AddContactsToDraft(base.Item, this.type, base.UserContext, this.ids);
                                }
                            }
                        }
                    }
                }
            }
            if (!string.IsNullOrEmpty(this.searchString))
            {
                this.searchString = this.searchString.Trim();
                if (this.searchString.Length > Globals.MaxSearchStringLength)
                {
                    throw new OwaInvalidRequestException("Search string length is more than 256 characters");
                }
            }
            if (this.pageNumber == 0)
            {
                this.pageNumber = 1;
            }
            this.firstItemOnPage = (this.pageNumber - 1) * base.UserContext.UserOptions.BasicViewRowCount + 1;
            this.lastItemOnPage  = this.firstItemOnPage + base.UserContext.UserOptions.BasicViewRowCount - 1;
            this.CreateListView();
            if (AddressBook.IsEditingMode(this.viewMode) || !string.IsNullOrEmpty(this.searchString))
            {
                base.UserContext.LastClientViewState = new AddressBookSearchViewState(base.UserContext.LastClientViewState, this.viewMode, this.addressBookToSearch, this.searchString, this.pageNumber, (base.Item == null || base.Item.Id == null) ? null : base.Item.Id.ObjectId, (base.Item == null || base.Item.Id == null) ? null : base.Item.Id.ChangeKeyAsBase64String(), this.recipientWell, this.sortColumn, this.sortOrder);
                return;
            }
            base.UserContext.LastClientViewState = new AddressBookViewState(base.UserContext.LastClientViewState, this.viewMode, this.pageNumber, (base.Item == null || base.Item.Id == null) ? null : base.Item.Id.ObjectId, (base.Item == null || base.Item.Id == null) ? null : base.Item.Id.ChangeKeyAsBase64String(), this.recipientWell, this.sortColumn, this.sortOrder);
        }
Esempio n. 10
0
        protected override void OnLoad(EventArgs e)
        {
            ExTraceGlobals.CalendarCallTracer.TraceDebug((long)this.GetHashCode(), "Basic.CalendarView.OnLoad");
            EditCalendarItemHelper.ClearUserContextData(base.UserContext);
            this.folderId = QueryStringUtilities.CreateFolderStoreObjectId(base.UserContext.MailboxSession, base.Request, false);
            if (this.folderId == null)
            {
                ExTraceGlobals.CalendarTracer.TraceDebug((long)this.GetHashCode(), "folderId is null, using default folder");
                this.folderId = base.UserContext.CalendarFolderId;
            }
            if (this.folderId == null)
            {
                throw new OwaInvalidRequestException("Invalid folder id");
            }
            StorePropertyDefinition displayName                 = StoreObjectSchema.DisplayName;
            PropertyDefinition      calendarViewType            = ViewStateProperties.CalendarViewType;
            PropertyDefinition      readingPanePosition         = ViewStateProperties.ReadingPanePosition;
            PropertyDefinition      readingPanePositionMultiDay = ViewStateProperties.ReadingPanePositionMultiDay;
            PropertyDefinition      viewWidth     = ViewStateProperties.ViewWidth;
            PropertyDefinition      dailyViewDays = ViewStateProperties.DailyViewDays;

            this.viewType = CalendarViewType.Min;
            string queryStringParameter  = Utilities.GetQueryStringParameter(base.Request, "dy", false);
            string queryStringParameter2 = Utilities.GetQueryStringParameter(base.Request, "mn", false);
            string queryStringParameter3 = Utilities.GetQueryStringParameter(base.Request, "yr", false);
            int    day;
            int    month;
            int    year;

            if (!string.IsNullOrEmpty(queryStringParameter) && int.TryParse(queryStringParameter, out day) && !string.IsNullOrEmpty(queryStringParameter2) && int.TryParse(queryStringParameter2, out month) && !string.IsNullOrEmpty(queryStringParameter3) && int.TryParse(queryStringParameter3, out year))
            {
                try
                {
                    ExDateTime exDateTime = new ExDateTime(base.UserContext.TimeZone, year, month, day);
                    this.days    = new ExDateTime[1];
                    this.days[0] = exDateTime.Date;
                }
                catch (ArgumentOutOfRangeException)
                {
                    base.Infobar.AddMessageLocalized(883484089, InfobarMessageType.Error);
                }
            }
            if (this.days == null)
            {
                this.days    = new ExDateTime[1];
                this.days[0] = DateTimeUtilities.GetLocalTime().Date;
            }
            this.calendarAdapter = new CalendarAdapter(base.UserContext, this.folderId);
            this.calendarAdapter.LoadData(DailyView.QueryProperties, this.days, false, true);
            this.dailyView = new DailyView(base.UserContext, this.calendarAdapter);
            base.OnLoad(e);
            if (base.IsPostFromMyself())
            {
                string formParameter = Utilities.GetFormParameter(base.Request, "hidcmdpst", false);
                if (string.CompareOrdinal(formParameter, "addjnkeml") == 0)
                {
                    if (!base.UserContext.IsJunkEmailEnabled)
                    {
                        throw new OwaInvalidRequestException(LocalizedStrings.GetNonEncoded(552277155));
                    }
                    InfobarMessage infobarMessage = JunkEmailHelper.AddEmailToSendersList(base.UserContext, base.Request);
                    if (infobarMessage != null)
                    {
                        base.Infobar.AddMessage(infobarMessage);
                    }
                }
            }
            base.UserContext.LastClientViewState = new CalendarModuleViewState(this.folderId, this.calendarAdapter.ClassName, this.days[0]);
        }
Esempio n. 11
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);
        }