// Token: 0x060023EC RID: 9196 RVA: 0x000CF1B8 File Offset: 0x000CD3B8
        public override void Render(int viewWidth, CalendarViewType viewType, ReadingPanePosition readingPanePosition, ReadingPanePosition requestReadingPanePosition)
        {
            SanitizedHtmlString sharedData = null;

            base.Output.Write("{\"rgCalendar\":[");
            if (this.monthlyView != null)
            {
                this.RenderCalendar(0, this.monthlyView);
                sharedData = this.GetSharedDataString(this.monthlyView, requestReadingPanePosition);
            }
            else
            {
                base.RenderCalendars(this.adapters, this.days, delegate(CalendarAdapterBase calendarAdapter, int index)
                {
                    if (index > 0)
                    {
                        this.Output.Write(",");
                    }
                    MonthlyView view = new MonthlyView(this.SessionContext, calendarAdapter);
                    if (sharedData == null)
                    {
                        sharedData = this.GetSharedDataString(view, requestReadingPanePosition);
                    }
                    this.RenderCalendar(index, view);
                });
            }
            base.Output.Write("]");
            if (sharedData != null)
            {
                base.Output.Write(",");
                base.Output.Write(sharedData);
            }
            base.Output.Write("}");
        }
 // Token: 0x060023EF RID: 9199 RVA: 0x000CF418 File Offset: 0x000CD618
 private void RenderWeekNumbers(TextWriter writer, MonthlyView view)
 {
     if (base.SessionContext.ShowWeekNumbers)
     {
         Calendar calendar = new GregorianCalendar();
         writer.Write("\"rgWkNm\":[");
         int num  = 0;
         int num2 = 0;
         int num3 = view.DateRanges.Length / 7;
         for (int i = 0; i < num3; i++)
         {
             ExDateTime start = view.DateRanges[i * 7].Start;
             if (start.Year != num)
             {
                 num = start.Year;
                 int weekOfYear = calendar.GetWeekOfYear((DateTime)start, base.SessionContext.FirstWeekOfYear, base.SessionContext.WeekStartDay);
                 if (num2++ > 0)
                 {
                     writer.Write(',');
                 }
                 writer.Write(weekOfYear);
             }
         }
         writer.Write("],");
         return;
     }
     writer.Write("\"rgWkNm\":0,");
 }
 // Token: 0x060023EE RID: 9198 RVA: 0x000CF3A0 File Offset: 0x000CD5A0
 private void RenderCalendar(int index, MonthlyView view)
 {
     base.Output.Write("{");
     base.RenderCalendarProperties(view);
     this.RenderDayStyles(view);
     base.Output.Write("\"rgItm\":[");
     base.RenderData(view, view.SelectedItemId);
     base.Output.Write("],\"rgEvtData\":[");
     base.RenderEventAreaVisual(index, view, view.VisualContainer);
     base.Output.Write("]}");
 }
        // Token: 0x060023ED RID: 9197 RVA: 0x000CF290 File Offset: 0x000CD490
        private SanitizedHtmlString GetSharedDataString(MonthlyView view, ReadingPanePosition requestReadingPanePosition)
        {
            SanitizedHtmlString result;

            using (SanitizingStringWriter <OwaHtml> sanitizingStringWriter = new SanitizingStringWriter <OwaHtml>())
            {
                base.RenderValue(sanitizingStringWriter, "sFId", base.SessionContext.CalendarFolderOwaIdString);
                base.RenderValue(sanitizingStringWriter, "sTimeZone", base.SessionContext.TimeZone.Id);
                base.RenderValue(sanitizingStringWriter, "iRowH", 20);
                base.RenderValue(sanitizingStringWriter, "iVT", 4);
                base.RenderValue(sanitizingStringWriter, "iVW", 0);
                base.RenderValue(sanitizingStringWriter, "sPrevMonth", view.PreviousMonthName);
                base.RenderValue(sanitizingStringWriter, "sCurrMonth", view.CurrentMonthName);
                base.RenderValue(sanitizingStringWriter, "sNextMonth", view.NextMonthName);
                base.RenderValue(sanitizingStringWriter, "iRRP", (int)requestReadingPanePosition);
                base.RenderValue(sanitizingStringWriter, "iNRP", 0);
                this.RenderWeekNumbers(sanitizingStringWriter, view);
                sanitizingStringWriter.Write("\"rgDay\":[");
                base.RenderDay(sanitizingStringWriter, view.DateRanges, CalendarViewType.Monthly);
                sanitizingStringWriter.Write("]");
                result = sanitizingStringWriter.ToSanitizedString <SanitizedHtmlString>();
            }
            return(result);
        }
 // Token: 0x060023EB RID: 9195 RVA: 0x000CF128 File Offset: 0x000CD328
 public MonthlyViewPayloadWriter(ISessionContext sessionContext, TextWriter output, MonthlyView monthlyView) : base(sessionContext, output)
 {
     if (monthlyView == null)
     {
         throw new ArgumentNullException("monthlyView");
     }
     this.monthlyView = monthlyView;
 }
        // Token: 0x060023F0 RID: 9200 RVA: 0x000CF4E0 File Offset: 0x000CD6E0
        private void RenderDayStyles(MonthlyView view)
        {
            bool[] array  = new bool[view.DayCount];
            int[]  array2 = new int[view.DayCount];
            bool   flag   = true;

            for (int i = 0; i < view.DayCount; i++)
            {
                if (view.DateRanges[i].Start.Day == 1)
                {
                    flag = !flag;
                }
                array[i] = flag;
            }
            int j = 0;

            while (j < view.VisualContainer.Count)
            {
                CalendarVisual calendarVisual = view.VisualContainer[j];
                if (calendarVisual.Rect.Width != 1.0)
                {
                    goto IL_B7;
                }
                ExDateTime startTime = view.DataSource.GetStartTime(calendarVisual.DataIndex);
                ExDateTime endTime   = view.DataSource.GetEndTime(calendarVisual.DataIndex);
                if ((endTime - startTime).Days != 0)
                {
                    goto IL_B7;
                }
IL_10E:
                j++;
                continue;
IL_B7:
                int wrappedBusyType = (int)view.DataSource.GetWrappedBusyType(calendarVisual.DataIndex);
                int num = (int)calendarVisual.Rect.X;
                while ((double)num < calendarVisual.Rect.X + calendarVisual.Rect.Width)
                {
                    if (array2[num] < wrappedBusyType)
                    {
                        array2[num] = wrappedBusyType;
                    }
                    num++;
                }
                goto IL_10E;
            }
            base.Output.Write("\"rgDayS\":[");
            for (int k = 0; k < view.DayCount; k++)
            {
                if (k == 0)
                {
                    base.Output.Write('"');
                }
                else
                {
                    base.Output.Write(",\"");
                }
                base.Output.Write(array[k] ? 'o' : 'i');
                base.Output.Write('n');
                switch (array2[k])
                {
                case 1:
                    base.Output.Write('t');
                    break;

                case 2:
                    base.Output.Write('b');
                    break;

                case 3:
                    base.Output.Write('o');
                    break;

                default:
                    base.Output.Write('f');
                    break;
                }
                base.Output.Write('"');
            }
            base.Output.Write("],");
        }