Exemple #1
0
        /// <summary>
        /// Enables/Disables calender days.
        /// </summary>
        private void CalendarView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            if (!load)
            {
                // Render basic day items.
                if (args.Phase == 0)
                {
                    // Register callback for next phase.
                    args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
                }
                // Set blackout dates.
                else if (args.Phase == 1)
                {
                    gg.Text = args.Item.Date.ToString();
                    // Blackout dates in the past, Sundays, and dates that are fully booked.
                    if (args.Item.Date.DayOfWeek == DayOfWeek.Sunday || !masterList.Contains(args.Item.Date.Date))
                    {
                        args.Item.IsBlackout = true;
                    }
                    // Register callback for next phase.
                    args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
                }

                // Set density bars.
            }
            else
            {
                args.Item.Background = new SolidColorBrush(Windows.UI.Colors.Aquamarine);
            }
        }
Exemple #2
0
            void OnCalendarViewDayItemChanging(object sender,
                                               CalendarViewDayItemChangingEventArgs e)
            {
                // phase 2: set density bar
                // phase 5: blackout
                // phase 7: end cic event

                if (e.Phase == 2)
                {
                    ColorCollection colors = new ColorCollection();
                    colors.Append(Colors.Red);
                    colors.Append(Colors.Green);
                    colors.Append(Colors.Blue);
                    colors.Append(Colors.Yellow);
                    e.Item.SetDensityColors(colors);
                }
                else if (e.Phase == 5)
                {
                    e.Item.IsBlackout = true;
                }
                else if (e.Phase == 7)
                {
                    m_cicEvent.Set();
                }

                // keep subscribing cic event until phase 7.
                if (e.Phase < 7)
                {
                    e.RegisterUpdateCallback(
                        (sender, e) =>
                    {
                        OnCalendarViewDayItemChanging(sender, e);
                    });
                }
            }
Exemple #3
0
        private void OnCalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            // Render basic day items.


            if (args.Phase == 0)

            {
                if (DatabaseHelper.FindPartyByDate(args.Item.Date).Count() == 0)
                {
                    args.Item.IsBlackout = true;
                    args.Item.IsEnabled  = false;
                }
                else
                {
                    // Register callback for next phase.
                    List <Party> parties = DatabaseHelper.FindPartyByDate(args.Item.Date);
                    List <Color> colors  = new List <Color>();
                    foreach (Party party in parties)
                    {
                        if (party.Accepted)
                        {
                            colors.Add(Colors.Green);
                        }
                        else
                        {
                            colors.Add(Colors.Red);
                        }
                    }
                    //args.Item.DataContext = DatabaseHelper.FindPartyByDate(args.Item.Date);
                    args.Item.SetDensityColors(colors);
                }
            }
        }
 private void CalSchedule_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
 {
     if (args.Item.Date.Date.Equals(DateTime.Now.Date))
     {
         args.Item.Background = ColorManager.GetSolidColorBrush("#CC009fe3");
     }
 }
        private void CalendarView_DayItemSelected(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            //foreach (Event e in Events)
            //{

            //}
        }
Exemple #6
0
        private void CalendarView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            // Render basic day items.
            if (args.Phase == 0)
            {
                if (isTodayBlackedOut.IsChecked.Value || isSundayBlackedOut.IsChecked.Value || hasDensityBars.IsChecked.Value)
                {
                    // Register callback for next phase.
                    args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
                }
            }
            // Set blackout dates.
            else if (args.Phase == 1)
            {
                // Blackout Sundays and/or Today.
                SetBlackout(args.Item);

                if (hasDensityBars.IsChecked.Value)
                {
                    // Register callback for next phase.
                    args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
                }
            }
            // Set density bars.
            else if (args.Phase == 2)
            {
                SetDensityColors(args.Item);
            }
        }
 private void CalendarView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
 {
     if (args.Item.Date.DayOfWeek == System.DayOfWeek.Saturday || args.Item.Date.DayOfWeek == System.DayOfWeek.Sunday)
     {
         args.Item.IsBlackout = grayOutWeekend;
     }
 }
 private void CalendarView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
 {
     if(args.Item.Date.DayOfWeek == System.DayOfWeek.Saturday || args.Item.Date.DayOfWeek == System.DayOfWeek.Sunday)
     {
         args.Item.IsBlackout = grayOutWeekend;
     }
 }
Exemple #9
0
        private void CalendarView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            var behavior = new WeekHighlightBehavior();

            behavior.CalendarControl = CalendarView;
            Interaction.GetBehaviors(args.Item).Clear();
            Interaction.GetBehaviors(args.Item).Add(behavior);
        }
Exemple #10
0
 private void CalendarView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
 {
     // Add all the day items loaded
     if (!CalendarViewDayItems.Contains(args.Item))
     {
         CalendarViewDayItems.Add(args.Item);
     }
 }
Exemple #11
0
        private void MycalendarView_SelectedDatesChanged(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            var selectedDates = sender.SelectedDates.Select(p => p.Date.Month.ToString() + "/" + p.Date.Day.ToString()).ToArray();

            var values = string.Join(",", selectedDates);

            CalendarViewResultTextBlock.Text = values;
        }
Exemple #12
0
        private void CView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            SolidColorBrush redBrush = new SolidColorBrush(Windows.UI.Colors.Red);

            if (dates.Contains(args.Item.Date.Date))
            {
                args.Item.Background = redBrush;
            }
        }
Exemple #13
0
        private void OnDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            switch (args.Phase)
            {
            case 0:
                RegisterUpdateCallback();
                break;

            case 1:
                SetBlackoutDates();
                break;

            case 2:
                SetBookings();
                break;

            default:
                break;
            }

            void RegisterUpdateCallback() => args.RegisterUpdateCallback(OnDayItemChanging);

            void SetBlackoutDates()
            {
                if (args.Item.Date < DateTimeOffset.Now || args.Item.Date.DayOfWeek == DayOfWeek.Saturday || args.Item.Date.DayOfWeek == DayOfWeek.Sunday)
                {
                    args.Item.IsBlackout = true;
                }
                RegisterUpdateCallback();
            }

            void SetBookings()
            {
                var bookings = GetBookings().ToList();

                var booking = bookings.SingleOrDefault(b => b.day.Date == args.Item.Date.Date);

                if (booking.bookings > 0)
                {
                    var colors = new List <Color>();
                    for (int i = 0; i < booking.bookings; i++)
                    {
                        if (args.Item.Date.DayOfWeek == DayOfWeek.Saturday || args.Item.Date.DayOfWeek == DayOfWeek.Sunday)
                        {
                            colors.Add(Colors.Red);
                        }
                        else
                        {
                            colors.Add(Colors.Green);
                        }
                    }

                    args.Item.SetDensityColors(colors);
                }
                RegisterUpdateCallback();
            }
        }
Exemple #14
0
        private void CalendarView_CalendarViewDayItemChanging(CalendarView sender,
                                                              CalendarViewDayItemChangingEventArgs args)
        {
            // Render basic day items.
            if (args.Phase == 0)
            {
                // Register callback for next phase.
                args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
            }
            // Set blackout dates.
            else if (args.Phase == 1)
            {
                // Blackout dates in the past, Sundays, and dates that are fully booked.
                if (args.Item.Date < DateTimeOffset.Now ||
                    args.Item.Date.DayOfWeek == DayOfWeek.Sunday)
                {
                    args.Item.IsBlackout = true;
                }
                if (args.Item.Date.Month == 12 && args.Item.Date.Day == 24 || args.Item.Date.Day == 25 || args.Item.Date.Day == 31)
                {
                    args.Item.IsBlackout = true;
                }
                // Register callback for next phase.
                args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
            }
            // Set density bars.
            else if (args.Phase == 2)
            {
                // Avoid unnecessary processing.
                // You don't need to set bars on past dates or Sundays.
                if (args.Item.Date > DateTimeOffset.Now &&
                    args.Item.Date.DayOfWeek != DayOfWeek.Sunday)
                {
                    // Get bookings for the date being rendered.

                    //var currentBookings = Bookings.GetBookings(args.Item.Date);

                    List <Windows.UI.Color> densityColors = new List <Windows.UI.Color>();
                    // Set a density bar color for each of the days bookings.
                    // It's assumed that there can't be more than 10 bookings in a day. Otherwise,
                    // further processing is needed to fit within the max of 10 density bars.
                    foreach (ActivePatient patient in activePatients)
                    {
                        String[] splitted = patient.Date.Split('-');
                        int      year     = int.Parse(splitted[0]);
                        int      month    = int.Parse(splitted[1]);
                        int      day      = int.Parse(splitted[2]);

                        if (args.Item.Date.Year == year && args.Item.Date.Month == month && args.Item.Date.Day == day && args.Item.IsBlackout == false)
                        {
                            densityColors.Add(Colors.Green);
                        }
                    }
                    args.Item.SetDensityColors(densityColors);
                }
            }
        }
Exemple #15
0
        private void CalendarView_OnCalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            var textBlock = FindFirstChildOfType <TextBlock>(args.Item);

            if (textBlock != null)
            {
                textBlock.HorizontalAlignment = HorizontalAlignment.Left;
                textBlock.VerticalAlignment   = VerticalAlignment.Top;
            }
        }
 // 加载日历项时触发的事件
 private void calendarView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
 {
     // 如果当前加载的日历项时当天的话
     if (args.Item.Date.Date.Equals(DateTime.Now.Date))
     {
         // 修改日历项的背景色(在 CalendarView 控件中没有属性可以直接设置当天日历项的背景色)
         // 另外,还有一些日历项的样式无法通过 CalendarView 直接设置,那么都可以考虑像这样做
         args.Item.Background = new SolidColorBrush(Colors.Orange);
     }
 }
 private void Calendar_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
 {
     if (_highlightedDates.Contains(args.Item.Date))
     {
         HighlightDay(args.Item);
     }
     else
     {
         UnHighlightDay(args.Item);
     }
 }
Exemple #18
0
 private void CalendarView_OnCalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
 {
     if (isInitialized)
     {
         CalendarViewDayItem localItem = args.Item;
         if (localItem != null && !args.InRecycleQueue && localItem.DataContext == null)
         {
             localItem.DataContext = ViewModel.GetEpisodesOnDate(localItem.Date.Date);
         }
     }
 }
Exemple #19
0
 private void calendar_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
 {
     if (dates.Contains(args.Item.Date.Date))
     {
         args.Item.Background = Brush;
     }
     else
     {
         args.Item.Background = null;
     }
 }
        private void CalendarView_OnCalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            SolidColorBrush red = new SolidColorBrush(Windows.UI.Colors.Red);

            foreach (var eventDates in _collectionEventSingleton.GetEvents())
            {
                if (args.Item != null && args.Item.Date.Equals(eventDates.Date))
                {
                    args.Item.Background = red;
                }
            }
        }
    private void CalendarView_DayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
    {
        // When the DayItem in the calendar is loaded
        var itemDate = args?.Item?.Date.Date ?? DateTime.MinValue;

        if (ViewModel.Dates.ContainsKey(itemDate))
        {
            // Set the datacontext for our custom control
            // - Which does support 2way binding :)
            args.Item.DataContext = ViewModel.Dates[itemDate];
        }
    }
    private void MyCalendarView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
    {
        var selectDay = args.Item as CalendarViewDayItem;

        for (int i = 0; i < times.Count; i++)
        {
            if (selectDay.Date.Year == times[i].MyDateTime.Year && selectDay.Date.Month == times[i].MyDateTime.Month && selectDay.Date.Day == times[i].MyDateTime.Day)
            {
                selectDay.Background = new SolidColorBrush(times[i].MyColor);
            }
        }
    }
Exemple #23
0
        private void CalendarView_CalendarViewDayItemChanging(CalendarView sender,
                                                              CalendarViewDayItemChangingEventArgs args)
        {
            // Render basic day items.
            if (args.Phase == 0)
            {
                // Register callback for next phase.
                args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
            }
            // Set blackout dates.
            else if (args.Phase == 1)
            {
                // Blackout dates in the past, Sundays, and dates that are fully booked.
                if (args.Item.Date < DateTimeOffset.Now)
                {
                    args.Item.IsBlackout = true;
                }
                // Register callback for next phase.
                args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
            }
            // Set density bars.
            else if (args.Phase == 2)
            {
                // Avoid unnecessary processing.
                // You don't need to set bars on past dates or Sundays.
                if (args.Item.Date > DateTimeOffset.Now &&
                    args.Item.Date.DayOfWeek != DayOfWeek.Sunday)
                {
                    // Get bookings for the date being rendered.
                    string   str1        = args.Item.Date.ToString();
                    DateTime dt1         = Convert.ToDateTime(str1);
                    var      currentItem = ViewModel.GetItems(dt1);

                    List <Color> densityColors = new List <Color>();
                    // Set a density bar color for each of the days bookings.
                    // It's assumed that there can't be more than 10 bookings in a day. Otherwise,
                    // further processing is needed to fit within the max of 10 density bars.
                    foreach (var Item in currentItem)
                    {
                        if (Item.finish == true)
                        {
                            densityColors.Add(Colors.Green);
                        }
                        else
                        {
                            densityColors.Add(Colors.Blue);
                        }
                    }
                    args.Item.SetDensityColors(densityColors);
                }
            }
        }
        private void reloadedItems(CalendarView sender, CalendarViewDayItemChangingEventArgs e)
        {
            CalendarViewDayItem cvdi = e.Item;

            if (allTasks.Contains(cvdi.Date.Date))
            {
                cvdi.Background = new SolidColorBrush(Colors.Green);
                cvdi.BorderThickness = new Thickness(2, 2, 2, 2);
                var brush = new SolidColorBrush(Color.FromArgb(1, 59, 89, 152));
                cvdi.BorderBrush = new SolidColorBrush(Colors.Blue);

            }
        }
        private void CV_OnCalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            var textBlock = FindFirstChildOfType <TextBlock>(args.Item);

            if (textBlock != null)
            {
                textBlock.HorizontalAlignment = HorizontalAlignment.Left;
                textBlock.VerticalAlignment   = VerticalAlignment.Top;
                textBlock.Margin     = new Thickness(12);
                textBlock.FontSize   = 26;
                textBlock.FontWeight = FontWeights.Light;
            }
        }
Exemple #26
0
        /// <summary>
        /// Method which occurs when CalendarView is loading.
        /// Adds density to a CalendarViewDayItem for each lesson.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        private void CalendarView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            IEnumerable <Lesson> lessons = Singleton <ClientExtensions> .Instance.AccountDetails.Lessons.Where(item => args.Item != null && item.LessonDate.Date.Date.Equals(args.Item.Date.Date));

            List <Color> densityList = new List <Color>();

            foreach (Lesson lesson in lessons)
            {
                densityList.Add((Color)Application.Current.Resources["SystemAccentColor"]);
            }

            args.Item?.SetDensityColors(densityList);
        }
 /// <summary>
 /// Give our calender datepicker some rules, so that the user can´t create a test on days prior to this and weekends.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void TestDatePicker_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs e)
 {
     if (e.Item.Date < DateTime.Today)
     {
         e.Item.IsBlackout = true;
     }
     if (e.Item.Date.DayOfWeek.ToString() == "Sunday")
     {
         e.Item.IsBlackout = true;
     }
     if (e.Item.Date.DayOfWeek.ToString() == "Saturday")
     {
         e.Item.IsBlackout = true;
     }
 }
        private void CalendarViewPreviousRouteInfo(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            converter.DisplayCalendarRouteInfo(InfoTextBlock);

            date = args.Item;

            SolidColorBrush greenBackground = new SolidColorBrush(Windows.UI.Colors.LightGreen);

            if (args.Phase == 0)
            {
                args.RegisterUpdateCallback(CalendarViewPreviousRouteInfo);
            }

            args.Item.PointerPressed += UpdateCalendarView;
        }
Exemple #29
0
        private void CalendarView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            if (args.Item.Date.Date.Equals(DateTime.Now))
            {
                args.Item.SetDensityColors(new List <Color> {
                    Colors.Red, Colors.AliceBlue
                });
            }

            foreach (var a in OriginCollection)
            {
                if (args.Item.Date.Date.Equals(a.Date))
                {
                }
            }
        }
        private void ThumbnailsView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            CalendarViewDayItem dayItem = args.Item;

            if (dayItem.DataContext == null)
            {
                dayItem.DataContext = dayItem;
            }

            int count = VisualTreeHelper.GetChildrenCount(dayItem);
            TextBlock numberTextBlock = VisualTreeHelper.GetChild(dayItem, count - 1) as TextBlock;
            if (numberTextBlock != null)
            {
                numberTextBlock.Visibility = Visibility.Collapsed;
            }
        }
Exemple #31
0
        private void CalendarView_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            // Render basic day items.
            if (args.Phase == 0)
            {
                // Register callback for next phase.
                args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
            }
            // Устанавливаем даты, которые затемняем.
            else if (args.Phase == 1)
            {
                // Затемняем прошедшие даты
                if (args.Item.Date < new DateTimeOffset(DateTimeOffset.Now.Year, DateTimeOffset.Now.Month, DateTimeOffset.Now.Day, 0, 0, 0, DateTimeOffset.Now.Offset) || args.Item.Date > MaxAvailableDate)
                {
                    args.Item.IsBlackout = true;
                }
                // Register callback for next phase.
                args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
            }
            // Set density bars.
            else if (args.Phase == 2)
            {
                // Avoid unnecessary processing.
                // Не нужны даты, которые были до нынешней
                if (args.Item.Date >= new DateTimeOffset(DateTimeOffset.Now.Year, DateTimeOffset.Now.Month, DateTimeOffset.Now.Day, 0, 0, 0, DateTimeOffset.Now.Offset) && args.Item.Date < MaxAvailableDate.AddDays(1))
                {
                    // Get bookings for the date being rendered.

                    List <Color> densityColors = new List <Color>();
                    // Set a density bar color for each of the days bookings.
                    // It's assumed that there can't be more than 10 bookings in a day. Otherwise,
                    // further processing is needed to fit within the max of 10 density bars.
                    foreach (var calendarEvent in CalendarEvents)
                    {
                        if (calendarEvent.EventDate.Day == args.Item.Date.Day && calendarEvent.EventDate.Month == args.Item.Date.Month && calendarEvent.EventDate.Year == args.Item.Date.Year)
                        {
                            densityColors.Add(calendarEvent.EventColor);
                        }
                    }
                    if (densityColors.Count > 0)
                    {
                        args.Item.SetDensityColors(FillColors(densityColors));
                    }
                }
            }
        }
 private void CalendarView_CalendarViewDayItemChanging(CalendarView sender,
                                                       CalendarViewDayItemChangingEventArgs args)
 {
     try
     {
         // Render basic day items.
         if (args.Phase == 0)
         {
             // Register callback for next phase.
             args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
         }
         // Set blackout dates.
         else if (args.Phase == 1)
         {
             // Blackout dates in the past, Sundays, and dates that are fully booked.
             if (args.Item.Date < DateTimeOffset.Now ||
                 args.Item.Date.DayOfWeek == DayOfWeek.Sunday)
             {
                 args.Item.IsBlackout = true;
             }
             // Register callback for next phase.
             args.RegisterUpdateCallback(CalendarView_CalendarViewDayItemChanging);
         }
         // Set density bars.
         else if (args.Phase == 2)
         {
             foreach (var Event in _sortedEvents)
             {
                 if (args.Item.Date.Equals(Event.Date))
                 {
                     args.Item.Background = red;
                 }
                 //else
                 //{
                 //    args.Item.IsBlackout = true;
                 //}
             }
         }
     }
     catch (Exception Expection)
     {
         // Handle the exception <3
     }
 }
        private void renderAppointments(CalendarView sender,
                                        CalendarViewDayItemChangingEventArgs args)
        {
            if (args.Phase == 0)
            {
                //<Render basic items of the calendar>
                // Register callback for next phase.
                args.RegisterUpdateCallback(renderAppointments);
            }
            else if (args.Phase == 1)
            {
                //Blackout dates past current date
                if (args.Item.Date < DateTimeOffset.Now.AddDays(-1))
                {
                    args.Item.IsBlackout = true;
                }
                // Register callback for next phase.
                args.RegisterUpdateCallback(renderAppointments);
            }
            else if (args.Phase == 2)
            {
                //List<Windows.UI.Color> densityColors = new List<Windows.UI.Color>();

                if (args.Item.Date > DateTimeOffset.Now.AddDays(-1))
                {
                    var listView = FindFirstChildOfType <ListView>(args.Item);   //find the listview control inside the calendarViewDayItem
                    listView.Items.Clear();

                    foreach (DataRow row in dtAppointments.Rows)
                    {
                        string itemDate   = Convert.ToDateTime(args.Item.Date.ToString()).ToShortDateString();
                        string recordDate = Convert.ToDateTime(row["DateStart"]).ToShortDateString();
                        if (itemDate == recordDate)
                        {
                            //densityColors.Add(Colors.Red);

                            listView.Items.Add(row["AppType"].ToString());   //add appointment items to listview
                        }
                    }
                    //args.Item.SetDensityColors(densityColors);
                }
            }
        }
        private void Calendar_CalendarViewDayItemChanging(CalendarView sender, CalendarViewDayItemChangingEventArgs args)
        {
            // Render basic day items.
            if (args.Phase == 0)
            {
                // Register callback for next phase.
                args.RegisterUpdateCallback(Calendar_CalendarViewDayItemChanging);
            }
            // Set blackout dates.
            else if (args.Phase == 1)
            {
                // Register callback for next phase.
                args.RegisterUpdateCallback(Calendar_CalendarViewDayItemChanging);
            }
            // Set density bars.
            else if (args.Phase == 2)
            {
                // Avoid unnecessary processing.
                // You don't need to set bars on past dates
                if (args.Item.Date >= DateTimeOffset.Now)
                {
                    var spEvents = (DataContext as CortanaCalendarViewModel).CortanaAppointments.Where(app => app.StartDate.Date == args.Item.Date.Date);

                    List<Color> densityColors = new List<Color>();
                    // Set a density bar color for each of the days bookings.
                    // It's assumed that there can't be more than 10 bookings in a day. Otherwise,
                    // further processing is needed to fit within the max of 10 density bars.
                    int cpt = 0;
                    foreach (var spEvent in spEvents.TakeWhile(a => cpt < 10))
                    {
                        cpt++;
                        densityColors.Add(Colors.Cyan);
                    }
                    args.Item.SetDensityColors(densityColors);
                }
            }
        }