private int Save(DeptEditVM.EditInput input, bool changeDeptFunc) { Dept dept; if (input.Id == 0) { dept = new Dept(); dept.Corp = GetLoginCorp(); dept.Funcs = new DomainList <Func>(); } else { dept = DeptBD.Get(input.Id); } if (!AdminCode.Equals(dept.Code, StringComparison.OrdinalIgnoreCase)) { dept.Code = input.Code; } dept.Name = input.Name; if (IsAdmin() && changeDeptFunc) { dept.Funcs.Clear(); if (!string.IsNullOrEmpty(input.DeptFuncIds)) { Array.ForEach(input.DeptFuncIds.Split(','), o => dept.Funcs.Add(FuncBD.Get(int.Parse(o)))); } } DeptBD.Save(dept); return(dept.Id); }
private void Save(UserEditVM.EditInput input) { User user; if (input.Id == 0) { user = new User(); user.Corp = GetLoginCorp(); user.Password = DefaultPassword; user.Funcs = new DomainList <Func>(); } else { user = UserBD.Get(input.Id); } if (IsAdmin(user)) { throw new AuthFailureException(); } user.Dept = input.Dept.ToReferencedDO(DeptBD); if (!AdminCode.Equals(user.Code, StringComparison.OrdinalIgnoreCase)) { user.Code = input.Code; } user.Name = input.Name; user.IsActive = input.IsActive; if (user != GetLoginUser()) { if (CanAccess("_ChangeUserFunc")) { user.Funcs.Clear(); if (!string.IsNullOrEmpty(input.UserFuncIds)) { Array.ForEach(input.UserFuncIds.Split(','), o => user.Funcs.Add(FuncBD.Get(int.Parse(o)))); } } } UserBD.Save(user); }