private void NavigateToSelectDateDialog(object obj, NavigateToSelectDateDialogArgs e)
        {
            if (e != null && e.SelectedFacility != null)
            {
                _selectedFacility = e.SelectedFacility;
            }

            SelectMeetingDateViewModel selectDateViewModel = new SelectMeetingDateViewModel(_selectedFacility.id);

            if (this.SelectedDate != default(DateTime))
            {
                selectDateViewModel.SelectedDate = this.SelectedDate;
            }
            else
            {
                selectDateViewModel.SelectedDate = DateTime.Now;
            }

            selectDateViewModel.ParentAppointmentDetails = _parentAppointmentDetails;
            selectDateViewModel.ChildAppointmentDetails  = _childAppointmentDetails;

            selectDateViewModel.ClearEventInvocations("BackToBookingsEvent");
            selectDateViewModel.ClearEventInvocations("NavigateToConfirmAppointmentEvent");
            SelectMeetingDateViewModel.BackToRoomsEvent += new BackToRoomsEventHandler(OnOpenRoomsDialog);
            SelectMeetingDateViewModel.NavigateToConfirmAppointmentEvent += NavigateToConfirmAppointmentDialog;

            selectDateViewModel.ClearSelectedTimeSlots();
            // Set the select date view model as the current view model
            CurrentViewModel = selectDateViewModel;
        }
        private void NavigateToConfirmAppointmentDialog(object obj, NavigateToConfirmAppointmentArgs e)
        {
            SelectMeetingDateViewModel selectDateModel = CurrentViewModel as SelectMeetingDateViewModel;

            this._selectedTimeslots = selectDateModel.GetSelectedTimeSlots();
            if (_selectedTimeslots == null || _selectedTimeslots.Count == 0)
            {
                return;
            }

            this._selectedDate = selectDateModel.SelectedDate;

            if (_appointmentViewModel == null)
            {
                _appointmentViewModel = new AppointmentViewModel();
            }
            _appointmentViewModel.SelectedFacility = _selectedFacility;
            _appointmentViewModel.Remarks          = string.Empty;
            var selectedEnds = selectDateModel.GetSelectedStartEndTimeslots();

            if (selectedEnds.Item1 != null)
            {
                _appointmentViewModel.StartTime = selectedEnds.Item1.from.ToSingaporeDateTimeFromEpoch();
            }
            if (selectedEnds.Item2 != null)
            {
                _appointmentViewModel.EndTime = selectedEnds.Item2.to.ToSingaporeDateTimeFromEpoch();
            }
            _appointmentViewModel.ErrorMessage = string.Empty;

            _appointmentViewModel.ClearEventInvocations("AddAppointmentEvent");
            _appointmentViewModel.ClearEventInvocations("BackToSelectDate");
            AppointmentViewModel.AddAppointmentEvent += new AddAppointmentEventHandler(OnAddAppointment);
            AppointmentViewModel.BackToSelectDate    += new BackToSelectDateEventHandler(BackToSelectDate);

            // Set the select date view model as the current view model
            CurrentViewModel = _appointmentViewModel;
        }