public void GetPublishedViewPayload() { ExTraceGlobals.CalendarCallTracer.TraceDebug((long)this.GetHashCode(), "CalendarViewEventHandler.GetPublishedViewPayload"); AnonymousSessionContext anonymousSessionContext = base.SessionContext as AnonymousSessionContext; if (anonymousSessionContext == null) { throw new OwaInvalidRequestException("This request can only be sent to Calendar VDir"); } CalendarViewType calendarViewType = (CalendarViewType)base.GetParameter("vt"); ExDateTime[] array = (ExDateTime[])base.GetParameter("days"); if (array == null) { array = new ExDateTime[] { DateTimeUtilities.GetLocalTime().Date }; } int num = 0; if (base.IsParameterSet("dir")) { num = (int)base.GetParameter("dir"); } if (num != 0) { CalendarViewEventHandler.MoveDates(array, calendarViewType, num); } this.ValidateDays(array, calendarViewType, num); ExTimeZone exTimeZone = null; if (base.IsParameterSet("tz")) { string text = (string)base.GetParameter("tz"); if (ExTimeZoneEnumerator.Instance.TryGetTimeZoneByName(text, out exTimeZone)) { anonymousSessionContext.TimeZone = exTimeZone; this.HttpContext.Response.Cookies["timezone"].Value = text; this.HttpContext.Response.Cookies["timezone"].Expires = (DateTime)ExDateTime.Now.AddYears(1); } } using (PublishedCalendarAdapter publishedCalendarAdapter = new PublishedCalendarAdapter(anonymousSessionContext)) { publishedCalendarAdapter.LoadData(CalendarUtilities.QueryProperties, array, calendarViewType, exTimeZone); CalendarViewPayloadWriter calendarViewPayloadWriter; if (calendarViewType == CalendarViewType.Monthly) { calendarViewPayloadWriter = new MonthlyViewPayloadWriter(base.SessionContext, this.Writer, array, new CalendarAdapterBase[] { publishedCalendarAdapter }); } else { calendarViewPayloadWriter = new DailyViewPayloadWriter(base.SessionContext, this.Writer, array, new CalendarAdapterBase[] { publishedCalendarAdapter }); } base.ResponseContentType = OwaEventContentType.Javascript; calendarViewPayloadWriter.Render(0, calendarViewType, Microsoft.Exchange.Clients.Owa.Core.ReadingPanePosition.Off, Microsoft.Exchange.Clients.Owa.Core.ReadingPanePosition.Off); } if (Globals.ArePerfCountersEnabled) { OwaSingleCounters.CalendarViewsRefreshed.Increment(); } }
private void RenderPayload(params OwaStoreObjectId[] folderIds) { ExTraceGlobals.CalendarCallTracer.TraceDebug((long)this.GetHashCode(), "CalendarViewEventHandler.RenderPayload"); ExDateTime[] array = (ExDateTime[])base.GetParameter("days"); int num = folderIds.Length; if (num > 5) { throw new OwaInvalidRequestException("Too many folders"); } if (num <= 0) { throw new OwaInvalidRequestException("Must pass at least one folder"); } if (array == null) { array = new ExDateTime[] { DateTimeUtilities.GetLocalTime().Date }; } if (array.Length == 0) { throw new OwaInvalidRequestException("Empty days array is not allowed"); } ReadingPanePosition requestReadingPanePosition = Microsoft.Exchange.Clients.Owa.Core.ReadingPanePosition.Min; if (base.IsParameterSet("srp")) { requestReadingPanePosition = (((bool)base.GetParameter("srp")) ? Microsoft.Exchange.Clients.Owa.Core.ReadingPanePosition.Right : Microsoft.Exchange.Clients.Owa.Core.ReadingPanePosition.Off); } bool flag = false; if (base.IsParameterSet("nvs")) { flag = (bool)base.GetParameter("nvs"); } CalendarViewType viewType = (CalendarViewType)base.GetParameter("vt"); using (CalendarAdapterCollection calendarAdapterCollection = new CalendarAdapterCollection(base.UserContext, folderIds, viewType)) { int num2 = 0; if (base.IsParameterSet("dir")) { num2 = (int)base.GetParameter("dir"); } if (num2 != 0) { CalendarViewEventHandler.MoveDates(array, calendarAdapterCollection.ViewType, num2); } array = CalendarUtilities.GetViewDays(base.UserContext, array, calendarAdapterCollection.ViewType, calendarAdapterCollection.PropertyFolderId, calendarAdapterCollection.FolderViewStates); this.ValidateDays(array, calendarAdapterCollection.ViewType, num2); CalendarAdapter[] adapters = calendarAdapterCollection.GetAdapters(array, true); CalendarViewPayloadWriter calendarViewPayloadWriter; if (calendarAdapterCollection.ViewType == CalendarViewType.Monthly) { calendarViewPayloadWriter = new MonthlyViewPayloadWriter(base.UserContext, this.Writer, array, adapters); } else { calendarViewPayloadWriter = new DailyViewPayloadWriter(base.UserContext, this.Writer, array, adapters); } base.ResponseContentType = OwaEventContentType.Javascript; calendarViewPayloadWriter.Render(calendarAdapterCollection.ViewWidth, calendarAdapterCollection.ViewType, calendarAdapterCollection.ReadingPanePosition, requestReadingPanePosition); if (!flag) { calendarAdapterCollection.SaveViewStates(array); } } if (Globals.ArePerfCountersEnabled) { OwaSingleCounters.CalendarViewsRefreshed.Increment(); } }