コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }