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); }