Esempio n. 1
0
        internal void ShowConsultationUi(Window owner)
        {
            _viewModel                   = new AddConsultationViewModel(OnAddConsultationRequest, OnHasToShowSelectionTimeSlots, OnCloseRequest);
            _viewModel.Patient           = "Test, Theo";
            _viewModel.RequestedDuration = 15;
            SetTestDataAddConsultationViewModel();

            _window             = new AddConsultationWindow();
            _window.DataContext = _viewModel;
            _window.Owner       = owner;
            _window.ShowDialog();
        }
        public static RegisterConsultationCommand Map(AddConsultationViewModel viewModel)
        {
            var registerConsultationCommand = new RegisterConsultationCommand();

            registerConsultationCommand.PatientId         = viewModel.Patient;
            registerConsultationCommand.RequestedTimeslot = new Timeslot();
            if (!viewModel.IsUrgent)
            {
                registerConsultationCommand.RequestedTimeslot.Start = viewModel.RequestedStart;
                registerConsultationCommand.RequestedTimeslot.End   = viewModel.RequestedEnd;
            }
            else
            {
                foreach (var viewModelDay in viewModel.DataContextNextCalendar.Days)
                {
                    var firstChecked = viewModelDay.Hours.FirstOrDefault(h => h.IsPatientAvailable);
                    if (firstChecked != null)
                    {
                        registerConsultationCommand.RequestedTimeslot.Start =
                            TimeSlotStringMapper.Map(viewModelDay.Date, firstChecked.HourInt);
                        var lastChecked = firstChecked;
                        for (var i = viewModelDay.Hours.IndexOf(firstChecked); i < viewModelDay.Hours.Count; i++)
                        {
                            if (viewModelDay.Hours[i].IsPatientAvailable)
                            {
                                lastChecked = viewModelDay.Hours[i];
                            }
                            else
                            {
                                break;
                            }
                        }
                        registerConsultationCommand.RequestedTimeslot.End = TimeSlotStringMapper.Map(viewModelDay.Date, lastChecked.HourInt + 1);
                    }
                }
            }

            registerConsultationCommand.RequestedTimeslot.Duration = new TimeSpan(0, 0, viewModel.RequestedDuration, 0);
            return(registerConsultationCommand);
        }