Exemple #1
0
        public ActionResult SaveUser(Guid?userId,
                                     string userName,
                                     bool enabled,
                                     string userCode,
                                     string realName,
                                     string organization,
                                     string organizationName,
                                     string department,
                                     string departmentName,
                                     string position,
                                     string positionName,
                                     string status,
                                     Employee employeeInfo,
                                     Guid[] roleIds)
        {
            bool          result   = false;
            EmployeeLogic empLogic = new EmployeeLogic();
            EmployeeModel user     = null;
            bool          isCreate = userId == null;

            if (isCreate)
            {
                if (WebSecurity.UserNameExists(userName))
                {
                    return(Json(new { Result = false, ErrorMessage = String.Format("用户名[{0}]已存在", userName) }));
                }
                else
                {
                    user = empLogic.CreateEmployeeModel(Guid.NewGuid(), userName);
                }
            }
            else
            {
                user = empLogic.GetEmployeeInfoById(userId.Value);
                if (user == null)
                {
                    return(Json(new { Result = false, ErrorMessage = "用户不存在" }));
                }
            }

            user.UserCode         = userCode;
            user.RealName         = realName;
            user.Organization     = organization;
            user.OrganizationName = organizationName;
            user.Department       = department;
            user.DepartmentName   = departmentName;
            user.Position         = position;
            user.PositionName     = positionName;
            user.Status           = status;

            user.Gender          = employeeInfo.Gender;
            user.Birthday        = employeeInfo.Birthday;
            user.CellPhoneNumber = employeeInfo.CellPhoneNumber;
            user.LinePhoneNumber = employeeInfo.LinePhoneNumber;
            user.Email           = employeeInfo.Email;
            user.Email2          = employeeInfo.Email2;
            user.QQ      = employeeInfo.QQ;
            user.ID      = employeeInfo.ID;
            user.Address = employeeInfo.Address;

            if (isCreate)
            {
                user.Enabled = enabled;
                WebSecurity.CreateUser(user, DefaultPassword, null, empLogic.InsertEmployeeHandler);
                result = true;
            }
            else
            {
                if (user.Enabled != enabled)
                {
                    WebSecurity.EnabledUser(user.UserName, enabled);
                    user.Enabled = enabled;
                }
                result = WebSecurity.UpdateUser(user, empLogic.UpdateEmployeeHandler);
            }

            if (roleIds != null)
            {
                result = WebSecurity.UpdateRolesForUser(user.UserId, roleIds);
                Functions.RemoveFunctionCache(new Guid[] { user.UserId });
            }

            //加载该员工的成本信息
            empLogic.LoadEmployeeCost(user);

            string jsonData = Newtonsoft.Json.JsonConvert.SerializeObject(
                new { Result = result, Data = user });

            return(Content(jsonData));
        }