public ActionResult Edit(int id = 0) { using (var db = new XkSystem.Models.DbContext()) { var vm = new Models.TeacherDept.Edit(); vm.TeacherDeptParentList = SelectList(); if (id != 0) { var tb = (from p in db.Table <Teacher.Entity.tbTeacherDept>() where p.Id == id select new Dto.TeacherDept.Edit { Id = p.Id, No = p.No, TeacherDeptName = p.TeacherDeptName, TeacherDeptParentId = p.tbTeacherDeptParent.Id, TeacherDeptParentName = p.tbTeacherDeptParent.TeacherDeptName }).FirstOrDefault(); if (tb != null) { vm.TeacherDeptEdit = tb; } } return(View(vm)); } }
public ActionResult Edit(Models.TeacherDept.Edit vm) { using (var db = new XkSystem.Models.DbContext()) { var error = new List <string>(); if (error.Count == decimal.Zero) { if (db.Table <Teacher.Entity.tbTeacherDept>().Where(d => d.TeacherDeptName == vm.TeacherDeptEdit.TeacherDeptName && d.Id != vm.TeacherDeptEdit.Id).Any()) { error.AddError("部门名称已存在!"); } else { if (vm.TeacherDeptEdit.Id == 0) { var tb = new Teacher.Entity.tbTeacherDept(); tb.No = vm.TeacherDeptEdit.No == null?db.Table <Teacher.Entity.tbTeacherDept>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.TeacherDeptEdit.No; tb.TeacherDeptName = vm.TeacherDeptEdit.TeacherDeptName; tb.tbTeacherDeptParent = db.Set <Teacher.Entity.tbTeacherDept>().Find(vm.TeacherDeptEdit.TeacherDeptParentId); db.Set <Teacher.Entity.tbTeacherDept>().Add(tb); if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加部门"); } } else { var tb = (from p in db.Table <Teacher.Entity.tbTeacherDept>() where p.Id == vm.TeacherDeptEdit.Id select p).FirstOrDefault(); if (tb != null) { if (tb.Id == vm.TeacherDeptEdit.TeacherDeptParentId) { error.AddError("不能选择自己作为父节点!"); return(Code.MvcHelper.Post(error)); } if (vm.TeacherDeptEdit.TeacherDeptParentId.HasValue) { var sunList = GetSon(db, tb.Id); if (sunList.ToList().Contains(vm.TeacherDeptEdit.TeacherDeptParentId.Value)) { error.AddError("不能选择自己的子节点作为父节点!"); return(Code.MvcHelper.Post(error)); } else { tb.tbTeacherDeptParent = db.Set <Teacher.Entity.tbTeacherDept>().Find(vm.TeacherDeptEdit.TeacherDeptParentId); } } else { //删除父级 db.Entry <Entity.tbTeacherDept>(tb).Reference(p => p.tbTeacherDeptParent).Load(); tb.tbTeacherDeptParent = null; } tb.No = vm.TeacherDeptEdit.No == null?db.Table <Teacher.Entity.tbTeacherDept>().Select(d => d.No).DefaultIfEmpty(0).Max() + 1 : (int)vm.TeacherDeptEdit.No; tb.TeacherDeptName = vm.TeacherDeptEdit.TeacherDeptName; if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改部门"); } } else { error.AddError(Resources.LocalizedText.MsgNotFound); } } } } return(Code.MvcHelper.Post(error)); } }