public async Task <ActionResult> Edit(IFormCollection collection, TemporaryVisitVM tempVisit) { var return_value = await _service.EditVisit_Post(tempVisit); if (return_value == 1) { return(RedirectToAction(nameof(Edit), new { message = "This patient already has visit at this time.", date = tempVisit.VisitDate.Date, dentistId = tempVisit.DentistId })); } return(RedirectToAction(nameof(Index))); }
public async Task <int> EditVisit_Post(TemporaryVisitVM editedVisit) { editedVisit.VisitDate = editedVisit.VisitDate + editedVisit.TimeOfVisit; var visits = _visitRepository.GetForDateTime(editedVisit.VisitDate); if (editedVisit.DentistId == 0) { if (visits.Any()) { if (visits.Select(v => v.PatientId).Contains(editedVisit.PatientId)) { return(1); } var dentists = _dentistRepository.GetAll().Select(d => d.Id).ToList(); foreach (var v in visits) { if (dentists.Contains(v.DentistId)) { dentists.Remove(v.DentistId); } } if (dentists.Any()) { editedVisit.DentistId = dentists.First(); } } else { editedVisit.DentistId = _dentistRepository.GetAll().Select(d => d.Id).First(); } } var visit = _mapper.Map <Visit>(editedVisit); await _visitRepository.Update(visit); return(0); }
public FirstVisitVM FirstVisit_Get(PatientForEditVM newPatient, DateTime?date, int?dentistId) { if (date == null) { date = DateTime.Today; } var dentists = _dentistRepository.GetAll().ProjectTo <DentistBasicInfoVM>(_mapper.ConfigurationProvider); var patients = _patientRepository.GetAll().ProjectTo <PatientBasicInfoVM>(_mapper.ConfigurationProvider); var bookedVisits = new List <DateTime>(); var availableVisits = new List <TimeSpan>(); CheckForAvailableVisits(dentists, patients, bookedVisits, availableVisits, date.Value, dentistId); var dent = dentists.Select(s => new SelectListItem { Text = s.Name + " " + s.LastName, Value = s.Id.ToString() }).ToList(); dent.Insert(0, new SelectListItem { Text = "Any", Value = "0" }); var visit = new TemporaryVisitVM() { Dentists = dent, PatientId = newPatient.Id, AvailableVisits = availableVisits, VisitDate = date.Value, DentistId = dentistId.GetValueOrDefault(0) }; return(new FirstVisitVM() { Patient = newPatient, Visit = visit }); }