private void MapVisualsY()
        {
            long ticks = this.viewDay.DateRange.VisualStart.Value.Ticks;
            long num   = this.viewDay.DateRange.VisualEnd.Value.Ticks - ticks;
            int  num2  = (int)(this.viewDay.DateRange.VisualEnd.Value - this.viewDay.DateRange.VisualStart.Value).TotalHours;

            for (int i = 0; i < this.viewDay.Count; i++)
            {
                SchedulingAreaVisual schedulingAreaVisual = (SchedulingAreaVisual)this.viewDay[i];
                ExDateTime           startTime            = this.dataSource.GetStartTime(schedulingAreaVisual.DataIndex);
                ExDateTime           endTime = this.dataSource.GetEndTime(schedulingAreaVisual.DataIndex);
                long   num3 = ((DateTime)startTime).Ticks - ticks;
                long   num4 = ((DateTime)endTime).Ticks - ticks;
                int    num5 = (this.parentView.TimeStripMode == TimeStripMode.FifteenMinutes) ? (num2 * 4) : (num2 * 2);
                double num6 = (double)num3 * (double)num5 / (double)num;
                schedulingAreaVisual.Rect.Y = num6;
                double num7 = (double)num4 * (double)num5 / (double)num;
                schedulingAreaVisual.Rect.Height         = num7 - num6;
                schedulingAreaVisual.AdjustedRect.Y      = schedulingAreaVisual.Rect.Y;
                schedulingAreaVisual.AdjustedRect.Height = schedulingAreaVisual.Rect.Height;
                if (schedulingAreaVisual.Rect.Y < 0.0 && schedulingAreaVisual.Rect.Y + schedulingAreaVisual.Rect.Height < 1.0)
                {
                    schedulingAreaVisual.AdjustedRect.Height = 1.0 - schedulingAreaVisual.Rect.Y;
                }
                double num8 = 23.5 * (double)((this.parentView.TimeStripMode == TimeStripMode.FifteenMinutes) ? 4 : 2);
                if (schedulingAreaVisual.Rect.Y > num8)
                {
                    double num9 = schedulingAreaVisual.Rect.Y - num8;
                    schedulingAreaVisual.AdjustedRect.Y       = num8;
                    schedulingAreaVisual.AdjustedRect.Height += num9;
                }
                if (schedulingAreaVisual.Rect.Height < 1.0)
                {
                    schedulingAreaVisual.AdjustedRect.Height = 1.0;
                }
            }
        }
 private void MapVisualsX()
 {
     if (this.viewDay.Count == 1)
     {
         this.viewDay[0].Rect.X     = 0.0;
         this.viewDay[0].Rect.Width = 1.0;
         return;
     }
     if (this.viewDay.Count != 2)
     {
         this.viewDay.SortVisuals(new SchedulingAreaVisualMapper.SchedulingAreaVisualComparer(this.dataSource));
         for (int i = 0; i < this.viewDay.Count; i++)
         {
             Rect rect = new Rect(this.viewDay[i].AdjustedRect);
             int  num  = 1;
             while (i + num < this.viewDay.Count && rect.IntersectsY(this.viewDay[i + num].AdjustedRect))
             {
                 rect.Add(this.viewDay[i + num].AdjustedRect);
                 num++;
             }
             if (num == 1)
             {
                 this.viewDay[i].Rect.X     = 0.0;
                 this.viewDay[i].Rect.Width = 1.0;
             }
             else
             {
                 int num2 = 1;
                 List <SchedulingAreaVisual>[] array = new List <SchedulingAreaVisual> [num];
                 SchedulingAreaVisual          schedulingAreaVisual = (SchedulingAreaVisual)this.viewDay[i];
                 schedulingAreaVisual.Column = 0;
                 for (int j = 1; j < num; j++)
                 {
                     ulong num3 = 0UL;
                     for (int k = 0; k < j; k++)
                     {
                         if (this.viewDay[i + k].AdjustedRect.IntersectsY(this.viewDay[i + j].AdjustedRect))
                         {
                             schedulingAreaVisual = (SchedulingAreaVisual)this.viewDay[i + k];
                             num3 |= 1UL << schedulingAreaVisual.Column;
                         }
                     }
                     int num4 = 0;
                     while ((num3 & 1UL << num4) != 0UL)
                     {
                         num4++;
                     }
                     schedulingAreaVisual = (SchedulingAreaVisual)this.viewDay[i + j];
                     if (num4 >= this.parentView.MaxConflictingItems)
                     {
                         this.parentView.RemoveItemFromView(schedulingAreaVisual.DataIndex);
                     }
                     else
                     {
                         schedulingAreaVisual.Column = num4;
                         if (array[schedulingAreaVisual.Column] == null)
                         {
                             array[schedulingAreaVisual.Column] = new List <SchedulingAreaVisual>();
                         }
                         array[schedulingAreaVisual.Column].Add(schedulingAreaVisual);
                         if (num4 + 1 > num2)
                         {
                             num2 = num4 + 1;
                         }
                     }
                 }
                 if (num2 > this.conflictCount)
                 {
                     this.conflictCount = num2;
                 }
                 double num5 = 1.0 / (double)num2;
                 for (int l = 0; l < num; l++)
                 {
                     schedulingAreaVisual        = (SchedulingAreaVisual)this.viewDay[i + l];
                     schedulingAreaVisual.Rect.X = (double)schedulingAreaVisual.Column * num5;
                     int num6 = 1;
                     for (int m = schedulingAreaVisual.Column + 1; m < num2; m++)
                     {
                         List <SchedulingAreaVisual> list = array[m];
                         if (list != null)
                         {
                             bool flag = false;
                             for (int n = 0; n < list.Count; n++)
                             {
                                 SchedulingAreaVisual schedulingAreaVisual2 = list[n];
                                 if (schedulingAreaVisual.AdjustedRect.IntersectsY(schedulingAreaVisual2.AdjustedRect))
                                 {
                                     flag = true;
                                     break;
                                 }
                             }
                             if (flag)
                             {
                                 break;
                             }
                         }
                         num6++;
                     }
                     schedulingAreaVisual.Rect.Width = num5 * (double)num6;
                 }
                 i += num - 1;
             }
         }
         return;
     }
     this.viewDay.SortVisuals(new SchedulingAreaVisualMapper.SchedulingAreaVisualComparer(this.dataSource));
     if (this.viewDay[0].AdjustedRect.IntersectsY(this.viewDay[1].AdjustedRect))
     {
         this.viewDay[0].Rect.X     = 0.0;
         this.viewDay[0].Rect.Width = 0.5;
         this.viewDay[1].Rect.X     = 0.5;
         this.viewDay[1].Rect.Width = 0.5;
         return;
     }
     this.viewDay[0].Rect.X     = 0.0;
     this.viewDay[0].Rect.Width = 1.0;
     this.viewDay[1].Rect.X     = 0.0;
     this.viewDay[1].Rect.Width = 1.0;
 }