public async Task SubmitVisit(string name, CreateVisitStep3ViewModel model, CancellationToken cancellationToken) { var appointments = await _appointmentsRepository.ListAsync(cancellationToken).ConfigureAwait(false); var doctor = await _doctorsRepository.GetAsync(model.DoctorName, cancellationToken).ConfigureAwait(false); var startDateTime = new DateTime(model.StartDateTime.Year, model.StartDateTime.Month, model.StartDateTime.Day, model.TimeOfDay.Hour, model.TimeOfDay.Minute, 0); var hasAlready = appointments.Any(a => a.Doctor.Name == model.DoctorName && a.StartDateTime == startDateTime); if (hasAlready) { throw new Exception("Doktor jest w tym czasie zajęty."); } var patient = await _patientsRepository.GetAsync(name, cancellationToken); var appointment = new Appointment { StartDateTime = startDateTime, Doctor = doctor, Patient = patient, AppointmentStatus = AppointmentStatus.New, Description = model.Description }; await _appointmentsRepository.CreateAsync(appointment, cancellationToken).ConfigureAwait(false); }
public async Task <IActionResult> CreateVisitStep3(CreateVisitStep2ViewModel model) { var correctTime = AppointmentManager.GetAvailableTimes(model.StartDateTime); var ccc = correctTime.Any(d => d.Date.ToString("d") == model.TimeOfDay.ToString("d")); if (!ccc) { ModelState.AddModelError("doctorError", "Niestety, wybrany lekarz jest w tym dniu niedostępny"); } if (!ModelState.IsValid) { } var doctor = await _doctorsRepository.GetDoctorByName(model.DoctorName); var createVisitStep3ViewModel = new CreateVisitStep3ViewModel { StartDateTime = new DateTime(model.StartDateTime.Year, model.StartDateTime.Month, model.StartDateTime.Day, model.TimeOfDay.Hour, model.TimeOfDay.Minute, 0), Doctor = doctor, DoctorName = model.DoctorName, Description = model.Description, TimeOfDay = model.TimeOfDay }; return(View(createVisitStep3ViewModel)); }
public async Task <IActionResult> SubmitVisit(CreateVisitStep3ViewModel model) { try { await _appService.SubmitVisit(User.Identity.Name, model, CancellationToken.None); } catch { return(View("CreateVisitError")); } return(RedirectToAction("Index", "Home")); }
public async Task <IActionResult> SubmitVisit(CreateVisitStep3ViewModel model) { var userName = _userManager.GetUserName(User); var doctor = await _doctorsRepository.GetDoctorByName(model.DoctorName); var patient = await _patientsRepository.GetPatientByName(userName); var appointment = new Appointment { StartDateTime = new DateTime(model.StartDateTime.Year, model.StartDateTime.Month, model.StartDateTime.Day, model.TimeOfDay.Hour, model.TimeOfDay.Minute, 0), Doctor = doctor, Patient = patient, Status = Status.New, Description = model.Description }; await _appointmentsRepository.AddAppointment(appointment); return(RedirectToAction("Index", "Home")); }
public async Task <IActionResult> CreateVisitStep3(CreateVisitStep2ViewModel model) { CreateVisitStep3ViewModel createVisitStep3ViewModel = await _appService.CreateVisitStepThree(model, CancellationToken.None); return(View(createVisitStep3ViewModel)); }