public ActionResult AddPatient(PatientModel o) { NextOfKin _NextOfKin = new NextOfKin(); Patient _patient = new Patient(); if (o.Id == 0) { //Add NextOfKin _NextOfKin.NokAddressLine1 = o.nextOfKinModel.NokAddressLine1; _NextOfKin.NokAddressLine2 = o.nextOfKinModel.NokAddressLine2; _NextOfKin.NokAddressLine3 = o.nextOfKinModel.NokAddressLine3; _NextOfKin.NokAddressLine4 = o.nextOfKinModel.NokAddressLine4; _NextOfKin.NokName = o.nextOfKinModel.NokName; _NextOfKin.NokRelationshipCode = o.nextOfKinModel.NokRelationshipCode; _NextOfKinBLL.Add(_NextOfKin); _NextOfKinBLL.Save(); //Add Patient _patient.DoctorId = o.DoctorId; _patient.HomeTelephoneNumber = o.HomeTelephoneNumber; _patient.NextOfKinId = _NextOfKin.Id; _patient.PasNumber = o.PasNumber; _patient.PatientName = o.PatientName; _patient.SexCodeId = o.SexCodeId; _PatientBLL.Add(_patient); _PatientBLL.Save(); } else { var pateint = _PatientBLL.GetItemById(o.Id); var nokToRelation = _NextOfKinBLL.GetAll().Where(a => a.Id == pateint.NextOfKinId).FirstOrDefault(); //remove nok if (nokToRelation != null) { _NextOfKin.Id = nokToRelation.Id; _NextOfKin.NokAddressLine1 = o.nextOfKinModel.NokAddressLine1; _NextOfKin.NokAddressLine2 = o.nextOfKinModel.NokAddressLine2; _NextOfKin.NokAddressLine3 = o.nextOfKinModel.NokAddressLine3; _NextOfKin.NokAddressLine4 = o.nextOfKinModel.NokAddressLine4; _NextOfKin.NokName = o.nextOfKinModel.NokName; _NextOfKin.NokRelationshipCode = o.nextOfKinModel.NokRelationshipCode; _NextOfKinBLL.Update(_NextOfKin); _NextOfKinBLL.Save(); } //Update _patient.Id = pateint.Id; _patient.DoctorId = o.DoctorId; _patient.HomeTelephoneNumber = o.HomeTelephoneNumber; _patient.NextOfKinId = _NextOfKin.Id; _patient.PasNumber = o.PasNumber; _patient.PatientName = o.PatientName; _patient.SexCodeId = o.SexCodeId; _PatientBLL.Update(_patient); _PatientBLL.Save(); } return(RedirectToAction("Index")); }