public ActionResult Create(FormCollection collection) { var model = new Branch(); this.TryUpdateModel<Branch>(model); this.OAService.SaveBranch(model); return this.RefreshParent(); }
public void SaveBranch(Branch branch) { using (var dbContext = new OADbContext()) { if (branch.ID > 0) { dbContext.Update<Branch>(branch); } else { dbContext.Insert<Branch>(branch); } } }
private void UpdateOrg(List<Branch> allBranch, List<Staff> allStaff, Branch currentBranch) { if (currentBranch.Staffs != null) { foreach (var staff in currentBranch.Staffs) { var existStaff = allStaff.SingleOrDefault(s => s.ID == staff.ID); if (existStaff != null) existStaff.BranchId = currentBranch.ID; } } if (currentBranch.Embranchment != null) { foreach (var branch in currentBranch.Embranchment) { var existBranch = allBranch.SingleOrDefault(b => b.ID == branch.ID); if (existBranch != null) existBranch.ParentId = currentBranch.ID; UpdateOrg(allBranch, allStaff, branch); } } }
/// <summary> /// 保存树形组织结构(刷全表数据/BatchUpdate),先取出来所有的Branch,Staff的ParentId为0,然后在根据RootBranch的树形结构赋对应的值 /// </summary> /// <param name="rootBranch"></param> public void SaveOrg(Branch rootBranch) { using (var dbContext = new OADbContext()) { var branchs = dbContext.Branchs.ToList(); branchs.ForEach(b => b.ParentId = 0); var staffs = dbContext.Staffs.ToList(); staffs.ForEach(s => s.BranchId = 0); UpdateOrg(branchs, staffs, rootBranch); dbContext.SaveChanges(); } }
private void AppendBranch(IEnumerable<Branch> allBranch, IEnumerable<Staff> allStaff, Branch branch) { branch.Embranchment = allBranch.Where(b => b.ParentId == branch.ID).Select(b => new Branch() { ID = b.ID, Name = b.Name }).ToList(); branch.Staffs = allStaff.Where(s => s.BranchId.Value == branch.ID).Select(b => new Staff() { ID = b.ID, Name = b.Name }).ToList(); branch.Embranchment.ForEach(b => AppendBranch(allBranch, allStaff, b)); }
/// <summary> /// 返回树形组织结构,根节点RootBranch(id=0, ParentId=0),其下Staff和Branch为未分配的,根节点下的第一个节点为TopBranch(id=1, ParantId=0),其他ParentId=0的归为RootBranch下 /// </summary> /// <returns></returns> public Branch GetOrg() { using (var dbContext = new OADbContext()) { var branchs = dbContext.Branchs.ToList(); var staffs = dbContext.Staffs.ToList(); var branch = new Branch(); AppendBranch(branchs, staffs, branch); return branch; } }
// // GET: /OA/Branch/Create public ActionResult Create() { var model = new Branch(); return View("Edit", model); }