public ActionResult EditFamily(Models.StudentFamily.Edit vm) { using (var db = new XkSystem.Models.DbContext()) { var tb = new Student.Entity.tbStudentFamily(); if (vm.StudentFamilyEdit.Id > 0) { tb = db.Set <Student.Entity.tbStudentFamily>().Find(vm.StudentFamilyEdit.Id); tb.FamilyName = vm.StudentFamilyEdit.FamilyName; tb.Job = vm.StudentFamilyEdit.Job; tb.Email = vm.StudentFamilyEdit.Email; tb.Mobile = vm.StudentFamilyEdit.Mobile; tb.tbDictKinship = db.Set <Dict.Entity.tbDictKinship>().Find(vm.StudentFamilyEdit.KinshipId); tb.UnitName = vm.StudentFamilyEdit.UnitName; tb.tbDictEducation = db.Set <Dict.Entity.tbDictEducation>().Find(vm.StudentFamilyEdit.EducationId); } else { tb = new Student.Entity.tbStudentFamily() { FamilyName = vm.StudentFamilyEdit.FamilyName, Job = vm.StudentFamilyEdit.Job, Mobile = vm.StudentFamilyEdit.Mobile, Email = vm.StudentFamilyEdit.Email, tbDictKinship = db.Set <Dict.Entity.tbDictKinship>().Find(vm.StudentFamilyEdit.KinshipId), UnitName = vm.StudentFamilyEdit.UnitName, tbStudent = db.Set <Student.Entity.tbStudent>().Find(vm.StudentId), tbDictEducation = db.Set <Dict.Entity.tbDictEducation>().Find(vm.StudentFamilyEdit.EducationId) }; //当添加父亲、母亲时,判断数据库中是否已经有父母记录 var kinshipName = db.Set <Dict.Entity.tbDictKinship>().Find(vm.StudentFamilyEdit.KinshipId).KinshipName; if (new string[] { "父亲", "母亲" }.Contains(kinshipName)) { if (db.Table <Student.Entity.tbStudentFamily>().Where(d => d.tbDictKinship.Id == vm.StudentFamilyEdit.KinshipId && d.tbStudent.Id == vm.StudentId).Count() > 0) { var error = new List <string>(); error.Add("此亲属关系记录已经存在!"); return(Code.MvcHelper.Post(error)); } } db.Set <Student.Entity.tbStudentFamily>().Add(tb); } db.SaveChanges(); } return(Code.MvcHelper.Post()); }
public bool InsertFamily(XkSystem.Models.DbContext db, Student.Entity.tbStudent student, string json) { var error = new List <string>(); if (json.Length > 20) { List <Dto.StudentFamily.InsertFamily> list = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Dto.StudentFamily.InsertFamily> >(json); foreach (var v in list) { if (v.Id > 0) { #region 修改 var tb = (from p in db.Table <Student.Entity.tbStudentFamily>() where p.tbStudent.StudentCode == student.StudentCode && p.Id == v.Id select p).FirstOrDefault(); if (tb != null) { tb.FamilyName = v.FamilyName; tb.tbDictKinship = db.Set <Dict.Entity.tbDictKinship>().Find(v.KinshipId); tb.UnitName = v.UnitName; tb.Job = v.Job; tb.Mobile = v.Mobile; tb.tbDictEducation = db.Set <Dict.Entity.tbDictEducation>().Find(v.EducationId); XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改学生家庭成员"); } else { error.AddError(Resources.LocalizedText.MsgNotFound); return(false); } #endregion } else { #region 新增 var tb = new Student.Entity.tbStudentFamily(); tb.tbStudent = student; tb.FamilyName = string.IsNullOrEmpty(v.FamilyName) ? "" : v.FamilyName; tb.tbDictKinship = db.Set <Dict.Entity.tbDictKinship>().Find(v.KinshipId); tb.UnitName = string.IsNullOrEmpty(v.UnitName) ? "" : v.UnitName; tb.Job = string.IsNullOrEmpty(v.Job) ? "" : v.Job; tb.Mobile = string.IsNullOrEmpty(v.Mobile) ? "" : v.Mobile; tb.tbDictEducation = db.Set <Dict.Entity.tbDictEducation>().Find(v.EducationId); db.Set <Student.Entity.tbStudentFamily>().Add(tb); XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加学生家庭成员"); #endregion } } #region 除ID不属于json的全部数据 var familyList = (from p in db.Table <Student.Entity.tbStudentFamily>() where p.tbStudent.StudentCode == student.StudentCode select p).ToList(); foreach (var v in familyList) { if (list.Where(d => d.Id == v.Id).Count() == 0) { v.IsDeleted = true; } } #endregion } return(true); }