public ActionResult Edit(int?id) { if (id.HasValue) { Doctor doctor = DbCtx.Doctors.Find(id); ClinicSpecialityDoctorViewModel vm = new ClinicSpecialityDoctorViewModel { SpecialityList = GetAllSpecialities(), ClinicList = new List <SelectListItem>(), LastName = doctor.LastName, FirstName = doctor.FirstName, PhoneNumber = doctor.PhoneNumber, Details = doctor.Details, DoctorId = doctor.DoctorId, ChosenClinicId = doctor.Clinic.ClinicId, ChosenSpecialityId = doctor.SpecialityId }; if (doctor == null) { return(HttpNotFound("Couldn't find the doctor with id = " + id.ToString() + "!")); } return(View(vm)); } return(HttpNotFound("Missing doctor id parameter!")); }
public ActionResult New() { ClinicSpecialityDoctorViewModel vm = new ClinicSpecialityDoctorViewModel { SpecialityList = GetAllSpecialities(), ClinicList = new List <SelectListItem>() }; return(View(vm)); }
public ActionResult New(ClinicSpecialityDoctorViewModel vm) { try { vm.SpecialityList = GetAllSpecialities(); vm.ClinicList = new List <SelectListItem>(); if (ModelState.IsValid) { // Checks that the chosen clinic has the chosen speciality Clinic clinic = DbCtx.Clinics.Find(vm.ChosenClinicId); Speciality speciality = DbCtx.Specialities.Find(vm.ChosenSpecialityId); if (clinic == null) { return(HttpNotFound("Couldn't find the clinic with id " + vm.ChosenClinicId.ToString() + "!")); } if (speciality == null) { return(HttpNotFound("Couldn't find the speciality with id " + vm.ChosenSpecialityId.ToString() + "!")); } var obj = (from Clinic in DbCtx.Clinics.Where(c => c.ClinicId == vm.ChosenClinicId) from Speciality in Clinic.Specialities.Where(spec => spec.SpecialityId == vm.ChosenSpecialityId) select Clinic).FirstOrDefault(); if (obj == null) { return(HttpNotFound("Speciality " + speciality.SpecialityName + " doesn't exist in " + clinic.Name + " clinic!")); } Doctor doctor = new Doctor { LastName = vm.LastName, FirstName = vm.FirstName, Details = vm.Details, SpecialityId = vm.ChosenSpecialityId, PhoneNumber = vm.PhoneNumber, ClinicId = vm.ChosenClinicId }; DbCtx.Doctors.Add(doctor); DbCtx.SaveChanges(); return(RedirectToAction("Index", "Doctor")); } return(View(vm)); } catch (Exception e) { return(View(vm)); } }
public ActionResult Edit(int id, ClinicSpecialityDoctorViewModel request) { try { request.ClinicList = new List <SelectListItem>(); request.SpecialityList = GetAllSpecialities(); if (ModelState.IsValid) { /* Checks that a clinic has the speciality */ Clinic clinic = DbCtx.Clinics.Find(request.ChosenClinicId); Speciality speciality = DbCtx.Specialities.Find(request.ChosenSpecialityId); if (clinic == null) { return(HttpNotFound("Couldn't find the clinic with id " + request.ChosenClinicId.ToString() + "!")); } if (speciality == null) { return(HttpNotFound("Couldn't find the speciality with id " + request.ChosenSpecialityId.ToString() + "!")); } var obj = (from Clinic in DbCtx.Clinics.Where(c => c.ClinicId == request.ChosenClinicId) from Speciality in Clinic.Specialities.Where(spec => spec.SpecialityId == request.ChosenSpecialityId) select Clinic).FirstOrDefault(); if (obj == null) { return(HttpNotFound("Speciality " + speciality.SpecialityName + " doesn't exist in " + clinic.Name + " clinic!")); } Doctor doctor = DbCtx.Doctors.Find(id); if (TryValidateModel(doctor)) { doctor.ClinicId = request.ChosenClinicId; doctor.Clinic = clinic; doctor.SpecialityId = request.ChosenSpecialityId; doctor.FirstName = request.FirstName; doctor.LastName = request.LastName; doctor.PhoneNumber = request.PhoneNumber; doctor.Details = request.Details; DbCtx.SaveChanges(); } return(RedirectToAction("Index", "Doctor")); } return(View(request)); } catch (Exception e) { return(View(request)); } }