public ActionResult EditHospitals(int id) { var doctor = _doctorRepository.Get(id); var viewModel = new DoctorHospitalsViewModel() { DoctorId = doctor.Id, FullName = doctor.FullName, Hospitals = doctor.Hospitals }; // Extend the Hospitals to a total of 6 for data entry while (viewModel.Hospitals.Count < 6) { viewModel.Hospitals.Add(new DoctorHospital()); } if (Session["HospitalItems"] == null) { var items = _hospitalRepository.Search("") .Select(s => new { Text = s.HospitalName, Value = s.Id }) .ToList(); Session["HospitalItems"] = items; } ViewBag.HospitalItems = Session["HospitalItems"]; return(View(viewModel)); }
internal bool SaveDoctorHospitals(DoctorHospitalsViewModel viewModel) { // First, delete all hospitals assigned to this doctor and then // add back in the ones that are not marked as Remove try { var sql = $"delete from hlc_DoctorHospital where DoctorId={viewModel.DoctorId}"; ExecuteSql(sql); foreach (var spec in viewModel.Hospitals) { if (!spec.Remove && spec.HospitalId != 0) { spec.DoctorId = viewModel.DoctorId; spec.Id = 0; var newId = Connection.Insert(spec); spec.Id = (int)newId; } } return(true); } catch (Exception ex) { LogException(ex, viewModel); return(false); } }
public ActionResult EditHospitals(DoctorHospitalsViewModel viewModel) { _doctorRepository.SaveDoctorHospitals(viewModel); return(RedirectToAction("View", new { id = viewModel.DoctorId })); }