예제 #1
0
        public async Task <JsonResult> AddStaff(VmStaff staff)
        {
            var ret        = new VM_JsonOnlyResult();
            var modelState = (new VmStaffValidator()).Validate(staff);

            if (!modelState.IsValid)
            {
                ret.Value = -1001;
                ret.Err   = string.Join("<br>", modelState.Errors.Select(m => m.ErrorMessage));
                return(await Task.FromResult(Json(ret)));
            }

            var errorMsg = "";

            m_UserManagerService.PreOnAddHandler =
                () =>
            {
                var retCheck = true;
                if (m_UserManagerService.UserIsExists(staff.NagigatedDomainObject.Name))
                {
                    errorMsg += "用户名已存在,请重新输入!";
                    retCheck  = false;
                }
                if (m_UserManagerService.UserIdCardIsExists(staff.NagigatedDomainObject.IdCard))
                {
                    errorMsg += "$身份证号已存在,请重新输入!";
                    retCheck  = false;
                }
                return(retCheck);
            };

            var dep = m_DepartmentManagerService.GetDepartment(staff.NagigatedDomainObject.DepartmentName);

            staff.NagigatedDomainObject.DepartmentId = dep?.ID;

            var role = m_UserManagerService.GetRole(staff.NagigatedDomainObject.Role.Name);

            staff.NagigatedDomainObject.Role   = role;
            staff.NagigatedDomainObject.RoleId = role?.ID;

            var added = await m_UserManagerService.AddObject(staff.NagigatedDomainObject, true);

            if (added == AppServiceExecuteStatus.Success)
            {
                ret.Value  = staff.NagigatedDomainObject.ID;
                ret.Result = true;
                return(Json(ret));
            }

            ret.Err = errorMsg.Trim('$').Replace("$", "<br>");//string.Format(added.ToDescription(), "员工信息已存在");
            if (string.IsNullOrEmpty(ret.Err))
            {
                ret.Err = string.Format(added.ToDescription(), "员工信息添加失败");
            }
            return(Json(ret));
        }
예제 #2
0
        public async Task <JsonResult> UpdateStaff(VmStaff staff)
        {
            var ret        = new VM_JsonOnlyResult();
            var modelState = (new VmStaffValidator()).Validate(staff);

            if (!modelState.IsValid)
            {
                ret.Value = -1001;
                ret.Err   = string.Join("<br>", modelState.Errors.Select(m => m.ErrorMessage));
                return(await Task.FromResult(Json(ret)));
            }

            var errorMsg = "";

            m_UserManagerService.PreOnUpdateHandler =
                () =>
            {
                //var selfUser = m_UserManagerService.GetUser(staff.NagigatedDomainObject.ID);
                //if (selfUser == null)
                //    return null;
                //var otherUser = m_UserManagerService.GetUser(staff.NagigatedDomainObject.Name);
                //if (otherUser == null || otherUser.ID == selfUser.ID)
                //    return selfUser;
                var existUserName = m_UserManagerService.UserIsExists(staff.NagigatedDomainObject.Name, staff.NagigatedDomainObject.ID);
                if (existUserName)
                {
                    errorMsg += "用户名已存在,请重新输入!";
                }

                var existIdCard = m_UserManagerService.UserIdCardIsExists(staff.NagigatedDomainObject.IdCard, staff.NagigatedDomainObject.ID);
                if (existIdCard)
                {
                    errorMsg += "$身份证号已存在,请重新输入!";
                }

                if (!existUserName && !existIdCard)
                {
                    return(m_UserManagerService.GetUser(staff.NagigatedDomainObject.ID));
                }
                return(null);
            };
            m_UserManagerService.OnUpdatingHandler = (existOject, newObject) =>
            {
                var n   = VmPersonMapper.MapTo(((Person)newObject), (Person)existOject);
                var dep = m_DepartmentManagerService.GetDepartment(staff.NagigatedDomainObject.DepartmentName);
                n.DepartmentId = dep?.ID;

                var role = m_UserManagerService.GetRole(staff.NagigatedDomainObject.Role.Name);
                n.Role   = role;
                n.RoleId = role?.ID;
            };
            var updatedRet = await m_UserManagerService.UpdateObject(staff.NagigatedDomainObject, true);

            if (updatedRet == AppServiceExecuteStatus.Success)
            {
                ret.Value  = staff.NagigatedDomainObject.ID;
                ret.Result = true;
                return(Json(ret));
            }

            ret.Err = errorMsg.Trim('$').Replace("$", "<br>");
            if (string.IsNullOrEmpty(ret.Err))
            {
                ret.Err = string.Format(updatedRet.ToDescription(), "更新员工信息失败");
            }
            return(Json(ret));
        }