private void RenderCalDay(DailyView view) { for (int i = 0; i < view.ViewDays.Length; i++) { if (i > 0) { base.Output.Write(","); } SchedulingAreaVisualContainer schedulingAreaVisualContainer = view.ViewDays[i]; base.Output.Write("new CalendarDay("); base.Output.Write(i.ToString(CultureInfo.InvariantCulture)); base.Output.Write(", new Array("); int num = 0; for (int j = 0; j < view.RowFreeBusy[i].Length; j++) { if (j > 0) { base.Output.Write(","); } BusyTypeWrapper busyTypeWrapper = view.RowFreeBusy[i][j]; int num2 = (int)busyTypeWrapper; if (num2 > num) { num = num2; } base.Output.Write(num2); } base.Output.Write("),"); base.Output.Write(num); int minutesPerCell = (view.TimeStripMode == TimeStripMode.FifteenMinutes) ? 15 : 30; WorkingHours workingHours = view.DataSource.WorkingHours; WorkingHours.WorkingPeriod[] workingHoursOnDay = workingHours.GetWorkingHoursOnDay(schedulingAreaVisualContainer.DateRange.Start); if (workingHoursOnDay.Length > 0) { ExDateTime date = schedulingAreaVisualContainer.DateRange.Start.Date; base.Output.Write(","); base.Output.Write(this.GetCellIndex(workingHoursOnDay[0].Start, minutesPerCell, date)); base.Output.Write(","); base.Output.Write(this.GetCellIndex(workingHoursOnDay[0].End, minutesPerCell, date)); if (workingHoursOnDay.Length > 1) { base.Output.Write(","); base.Output.Write(this.GetCellIndex(workingHoursOnDay[1].Start, minutesPerCell, date)); base.Output.Write(","); base.Output.Write(this.GetCellIndex(workingHoursOnDay[1].End, minutesPerCell, date)); } } base.Output.Write(")"); } }
private void RenderScheduleAreaVis(int iCalIdx, DailyView view) { bool flag = true; for (int i = 0; i < view.ViewDays.Length; i++) { SchedulingAreaVisualContainer schedulingAreaVisualContainer = view.ViewDays[i]; for (int j = 0; j < schedulingAreaVisualContainer.Count; j++) { SchedulingAreaVisual schedulingAreaVisual = (SchedulingAreaVisual)schedulingAreaVisualContainer[j]; if (!view.IsItemRemoved(schedulingAreaVisual.DataIndex)) { if (!flag) { base.Output.Write(","); } flag = false; base.Output.Write("new VisData("); base.Output.Write(iCalIdx); base.Output.Write(","); int num = (base.ItemIndex != null) ? ((int)base.ItemIndex[schedulingAreaVisual.DataIndex]) : schedulingAreaVisual.DataIndex; base.Output.Write(num); base.Output.Write(","); base.Output.Write(schedulingAreaVisual.Rect.X.ToString("0.####", CultureInfo.InvariantCulture)); base.Output.Write(","); base.Output.Write(schedulingAreaVisual.Rect.Y.ToString("0.####", CultureInfo.InvariantCulture)); base.Output.Write(","); base.Output.Write(schedulingAreaVisual.Rect.Width.ToString("0.####", CultureInfo.InvariantCulture)); base.Output.Write(","); base.Output.Write(schedulingAreaVisual.Rect.Height.ToString("0.####", CultureInfo.InvariantCulture)); base.Output.Write(","); base.Output.Write("0,0"); if (num == base.SelectedItemIndex) { base.Output.Write(",1,"); } else { base.Output.Write(",0,"); } base.Output.Write(i); base.Output.Write(")"); } } } }
// Token: 0x06000154 RID: 340 RVA: 0x0000B1EC File Offset: 0x000093EC private int[,] MapSchedulingAreaData(SchedulingAreaVisualContainer day, int totalNumberOfColumns) { int count = day.Count; int[,] visualPositionData = this.GetVisualPositionData(day, totalNumberOfColumns); int[,] array = new int[48, totalNumberOfColumns]; for (int i = 0; i < count; i++) { int num = (visualPositionData[i, 1] >= 0) ? visualPositionData[i, 1] : 0; while (num < 48 && num < visualPositionData[i, 1] + visualPositionData[i, 3]) { for (int j = visualPositionData[i, 0]; j < visualPositionData[i, 0] + visualPositionData[i, 2]; j++) { array[num, j] = visualPositionData[i, 4]; } num++; } } return(array); }
// Token: 0x06000155 RID: 341 RVA: 0x0000B294 File Offset: 0x00009494 private int[,] GetVisualPositionData(SchedulingAreaVisualContainer day, int totalNumberOfColumns) { int count = day.Count; int[,] array = new int[count, 5]; for (int i = 0; i < count; i++) { SchedulingAreaVisual schedulingAreaVisual = (SchedulingAreaVisual)day[i]; if (!base.IsItemRemoved(schedulingAreaVisual.DataIndex)) { array[i, 0] = (int)Math.Round(schedulingAreaVisual.Rect.X * (double)totalNumberOfColumns); array[i, 1] = (int)Math.Floor(schedulingAreaVisual.Rect.Y); array[i, 2] = (int)Math.Round(schedulingAreaVisual.Rect.Width * (double)totalNumberOfColumns); array[i, 3] = ((schedulingAreaVisual.Rect.Height < 1.0) ? 1 : ((int)Math.Round(schedulingAreaVisual.Rect.Y + schedulingAreaVisual.Rect.Height - (double)array[i, 1]))); if (array[i, 1] + array[i, 3] <= 0) { array[i, 1] = 0; } array[i, 4] = schedulingAreaVisual.DataIndex + 1; } } return(array); }
// Token: 0x0600014F RID: 335 RVA: 0x0000A3A0 File Offset: 0x000085A0 public void Render(TextWriter writer) { if (writer == null) { throw new ArgumentNullException("writer"); } SchedulingAreaVisualContainer schedulingAreaVisualContainer = base.ViewDays[0]; this.totalNumberOfColumns = this.GetTotalNumberOfColumns(schedulingAreaVisualContainer, this.conflictsPerTimeSlot); this.CalculateStartAndEndTimes(); this.ComputeDayFreeBusy(); writer.Write("<table cellpadding=0 cellspacing=0 class=\"cdayvw\"><caption>"); writer.Write(LocalizedStrings.GetHtmlEncoded(573876176)); writer.Write("</caption>"); string text = DateTimeUtilities.GetDaysFormat(this.UserContext.UserOptions.DateFormat); if (text == null) { text = "%d"; } ExDateTime exDateTime = schedulingAreaVisualContainer.DateRange.Start.IncrementDays(-1); ExDateTime exDateTime2 = schedulingAreaVisualContainer.DateRange.Start.IncrementDays(1); writer.Write("<tr><td rowspan=2 class=\"nv\" align=\"center\"><a href=\"#\" title=\""); writer.Write(LocalizedStrings.GetHtmlEncoded(790373277)); writer.Write("\" onClick=\"return onClkD({0},{1},{2});\"><img src=\"", exDateTime.Year, exDateTime.Month, exDateTime.Day); this.UserContext.RenderThemeFileUrl(writer, ThemeFileId.PreviousPage); writer.Write("\" alt=\""); writer.Write(LocalizedStrings.GetHtmlEncoded(790373277)); writer.Write("\"></a><a href=\"#\" title=\""); writer.Write(LocalizedStrings.GetHtmlEncoded(-943287977)); writer.Write("\" onClick=\"return onClkD({0},{1},{2});\"><img src=\"", exDateTime2.Year, exDateTime2.Month, exDateTime2.Day); this.UserContext.RenderThemeFileUrl(writer, ThemeFileId.NextPage); writer.Write("\" alt=\""); writer.Write(LocalizedStrings.GetHtmlEncoded(-943287977)); writer.Write("\"></a></td><td colspan="); writer.Write(this.totalNumberOfColumns); writer.Write(" class=\"cvhd"); ExDateTime localTime = DateTimeUtilities.GetLocalTime(); if (schedulingAreaVisualContainer.DateRange.Start.Year == localTime.Year && schedulingAreaVisualContainer.DateRange.Start.Month == localTime.Month && schedulingAreaVisualContainer.DateRange.Start.Day == localTime.Day) { writer.Write(" cd"); } writer.Write("\" align=\"center\"><span>"); writer.Write(Utilities.HtmlEncode(schedulingAreaVisualContainer.DateRange.Start.ToString(text))); writer.Write("</span>"); writer.Write(Utilities.HtmlEncode(schedulingAreaVisualContainer.DateRange.Start.ToString("dddd"))); writer.Write("</td></tr>"); string freeBusyStylePrefix = DailyView.GetFreeBusyStylePrefix(this.dayBusyType); writer.Write("<tr><td colspan={0} class=\"{1}e\">", this.totalNumberOfColumns, freeBusyStylePrefix); if (base.EventArea.Count > 0) { this.RenderEventArea(writer); } else { writer.Write(" "); } writer.Write("</td></tr>"); this.RenderSchedulingArea(writer, schedulingAreaVisualContainer); writer.Write("</table>"); }
// Token: 0x06000156 RID: 342 RVA: 0x0000B3A8 File Offset: 0x000095A8 private int GetTotalNumberOfColumns(SchedulingAreaVisualContainer day, int[] conflictsPerTimeSlot) { int count = day.Count; for (int i = 0; i < count; i++) { SchedulingAreaVisual schedulingAreaVisual = (SchedulingAreaVisual)day[i]; int num = (int)(1.0 / schedulingAreaVisual.Rect.Width); int num2 = 0; while ((double)num2 < schedulingAreaVisual.AdjustedRect.Height) { int num3 = (int)schedulingAreaVisual.AdjustedRect.Y + num2; if (num3 >= 0 && num3 < 48 && conflictsPerTimeSlot[num3] < this.MaxConflictingItems && num > conflictsPerTimeSlot[num3]) { conflictsPerTimeSlot[num3] = num; } num2++; } } bool flag = false; bool flag2 = false; bool flag3 = false; bool flag4 = false; bool flag5 = false; bool flag6 = false; for (int j = 0; j < 48; j++) { if (!flag && conflictsPerTimeSlot[j] == 2) { flag = true; } if (!flag2 && conflictsPerTimeSlot[j] == 3) { flag2 = true; } if (!flag3 && conflictsPerTimeSlot[j] == 4) { flag3 = true; } if (!flag4 && conflictsPerTimeSlot[j] == 5) { flag4 = true; } if (!flag5 && conflictsPerTimeSlot[j] == 6) { flag5 = true; } if (!flag6 && conflictsPerTimeSlot[j] >= 7) { flag6 = true; } } if (flag5) { if (flag3) { flag3 = false; flag = true; } else { flag = false; } flag2 = false; } if (flag3) { flag = false; } int num4 = 1; if (flag) { num4 *= 2; } if (flag2) { num4 *= 3; } if (flag3) { num4 *= 4; } if (flag4) { num4 *= 5; } if (flag5) { num4 *= 6; } if (flag6) { num4 *= 7; } return(num4); }
// Token: 0x06000153 RID: 339 RVA: 0x0000AA30 File Offset: 0x00008C30 private void RenderSchedulingArea(TextWriter writer, SchedulingAreaVisualContainer day) { int[,] array = this.MapSchedulingAreaData(day, this.totalNumberOfColumns); string text = DateTimeUtilities.GetHoursFormat(this.UserContext.UserOptions.TimeFormat); string arg = "00"; if (text == null) { text = "%h"; } int num = this.renderDayStartTime / 30; int num2 = this.renderDayEndTime / 30; int num3 = this.userDayStartTime / 30; int num4 = this.userDayEndTime / 30; ICalendarDataSource dataSource = base.CalendarAdapter.DataSource; ExDateTime exDateTime = new ExDateTime(this.UserContext.TimeZone, 2000, 1, 1, num / 2, 0, 0); for (int i = num; i < num2; i++) { writer.Write("<tr><td class=\""); if (i == num) { writer.Write("frst "); } if (i % 2 == 0) { if (text[1] == 'h') { if (exDateTime.Hour >= 0 && exDateTime.Hour < 12) { arg = Utilities.HtmlEncode(Culture.AMDesignator); } else if (exDateTime.Hour >= 12) { arg = Utilities.HtmlEncode(Culture.PMDesignator); } } writer.Write("tm\" align=\"right\">{0} <span>{1}</span>", exDateTime.ToString(text), arg); exDateTime = exDateTime.AddHours(1.0); } else { writer.Write("tme\"> "); } writer.Write("</td>"); for (int j = 0; j < this.totalNumberOfColumns; j++) { if (array[i, j] >= 0 && array[i, j] >= 0) { int num5 = j + 1; int num6 = 1; while (num5 < this.totalNumberOfColumns && array[i, num5] == array[i, j]) { array[i, num5] = -1; num5++; } int num7 = num5 - j; if (array[i, j] != 0) { num6 = 1; int num8 = i + 1; while (num8 < num2 && array[num8, j] == array[i, j]) { num6++; for (int k = 0; k < num7; k++) { array[num8, j + k] = -1; } num8++; } } string freeBusyStylePrefix = DailyView.GetFreeBusyStylePrefix(base.RowFreeBusy[0][i]); writer.Write("<td class=\""); if (array[i, j] == 0) { writer.Write(freeBusyStylePrefix); if (i % 2 == 0) { writer.Write("d "); } else { writer.Write("l "); } writer.Write(freeBusyStylePrefix); if (num3 <= num4 && i >= num3 && i < num4) { writer.Write("w"); } else if (num3 > num4 && (i >= num3 || i < num4)) { writer.Write("w"); } else { writer.Write("n"); } } else if (array[i, j] > 0) { writer.Write("v"); int index = array[i, j] - 1; ExDateTime startTime = dataSource.GetStartTime(index); ExDateTime endTime = dataSource.GetEndTime(index); if (startTime.Date < day.DateRange.Start.Date) { writer.Write(" ntp"); } else if (endTime.Date > day.DateRange.Start.Date) { writer.Write(" nbtm"); } } writer.Write("\""); if (num6 > 1) { writer.Write(" rowspan={0}", num6); } if (num7 > 1) { writer.Write(" colspan={0}", num7); } if (num7 < this.totalNumberOfColumns) { writer.Write(" width=\"{0:f}%\"", num7 * 100 / this.totalNumberOfColumns); } if (array[i, j] > 0) { writer.Write(" nowrap"); } writer.Write(">"); if (array[i, j] == 0) { writer.Write(" </td>"); } else if (array[i, j] > 0) { int index2 = array[i, j] - 1; ExDateTime startTime2 = dataSource.GetStartTime(index2); ExDateTime endTime2 = dataSource.GetEndTime(index2); string subject = dataSource.GetSubject(index2); string location = dataSource.GetLocation(index2); OwaStoreObjectId itemId = dataSource.GetItemId(index2); bool isPrivate = dataSource.IsPrivate(index2); CalendarItemTypeWrapper wrappedItemType = dataSource.GetWrappedItemType(index2); bool flag = dataSource.IsMeeting(index2); string text2 = string.Empty; if (flag) { text2 = dataSource.GetOrganizerDisplayName(index2); } bool hasAttachment = dataSource.HasAttachment(index2); int num9 = 64; int num10 = 3; this.ComputeMaxCharactersAndIcons(num6, num7, out num9, out num10); writer.Write("<table cellspacing=0 cellpadding=0 class=\"vis\"><tr>"); BusyTypeWrapper wrappedBusyType = dataSource.GetWrappedBusyType(index2); if (wrappedBusyType != BusyTypeWrapper.Busy) { writer.Write("<td class=\""); switch (wrappedBusyType) { case BusyTypeWrapper.Free: writer.Write("f\"><img src=\""); this.UserContext.RenderThemeFileUrl(writer, ThemeFileId.Clear); writer.Write("\" alt=\"\"></td>"); break; case BusyTypeWrapper.Tentative: writer.Write("t\"></td>"); break; case BusyTypeWrapper.OOF: writer.Write("o\"></td>"); break; case BusyTypeWrapper.Unknown: writer.Write("u\"></td>"); break; } } writer.Write("<td class=\"txt\">"); switch (num6) { case 1: this.RenderSubject(writer, subject, num9, startTime2, endTime2, location, false, flag, itemId); if (!string.IsNullOrEmpty(subject)) { num9 -= subject.Length; } else if (flag) { num9 -= LocalizedStrings.GetNonEncoded(-1500721828).Length; } else { num9 -= LocalizedStrings.GetNonEncoded(-1178892512).Length; } if (!string.IsNullOrEmpty(location) && (location.Length + 2 <= num9 || num9 >= 5)) { writer.Write("; "); Utilities.CropAndRenderText(writer, location, num9 - 2); } break; case 2: this.RenderSubject(writer, subject, num9, startTime2, endTime2, location, false, flag, itemId); if (!string.IsNullOrEmpty(location)) { writer.Write("<br>"); Utilities.CropAndRenderText(writer, location, num9); num9 -= location.Length; } if (!string.IsNullOrEmpty(text2) && flag && num9 > 3) { writer.Write("; "); Utilities.CropAndRenderText(writer, text2, num9); } break; default: this.RenderSubject(writer, subject, num9, startTime2, endTime2, location, false, flag, itemId); if (!string.IsNullOrEmpty(location)) { writer.Write("<br>"); Utilities.CropAndRenderText(writer, location, num9); } if (!string.IsNullOrEmpty(text2) && flag) { writer.Write("<br>"); Utilities.CropAndRenderText(writer, text2, num9); } break; } writer.Write("</td>"); if (num10 > 0) { writer.Write("<td class=\"icn\" align=\"right\">"); this.RenderIcons(writer, num10, isPrivate, wrappedItemType, hasAttachment); writer.Write("</td>"); } writer.Write("</tr></table></td>"); } } } writer.Write("</tr>"); } int num11 = base.RowFreeBusy[0].Length - 1; string freeBusyStylePrefix2 = DailyView.GetFreeBusyStylePrefix(base.RowFreeBusy[0][num11]); writer.Write("<tr><td class=\"tm\"><img src=\""); this.UserContext.RenderThemeFileUrl(writer, ThemeFileId.Clear); writer.Write("\" alt=\"\"></td><td colspan=\"{0}\" class=\"{1}d {1}n\"><img src=\"", this.totalNumberOfColumns, freeBusyStylePrefix2); this.UserContext.RenderThemeFileUrl(writer, ThemeFileId.Clear); writer.Write("\" alt=\"\"></td></tr>"); writer.Write("<tr><td class=\"tme h100\"><img src=\""); this.UserContext.RenderThemeFileUrl(writer, ThemeFileId.Clear); writer.Write("\" alt=\"\"></td><td colspan=\"{0}\" class=\"{1}n\"></td></tr>", this.totalNumberOfColumns, freeBusyStylePrefix2); }