示例#1
0
        /// <summary>
        /// 修改资料
        /// </summary>
        /// <param name = "state" > 用户名 </param>
        /// <returns> </returns>
        public bool ModifyTo(UserModifyState state)
        {
            ThrowExceptionIfValidateFailure(() =>
            {
                //编辑的内容为NULl
                if (state == null)
                {
                    AddBrokenRule(UserAccountFailureRules.MODIFYSTATE_CANNOT_NULL);
                }
                else
                {
                    // 用户名不能为空
                    if (string.IsNullOrWhiteSpace(state.UserName))
                    {
                        AddBrokenRule(UserAccountFailureRules.USERNAME_REQUIRE);
                    }
                    // 姓名不能为空
                    else if (string.IsNullOrWhiteSpace(state.Name))
                    {
                        AddBrokenRule(UserAccountFailureRules.NAME_REQUIRE);
                    }
                    // Email不能为空且格式要正确
                    else if (!state.Email.IsEmail())
                    {
                        AddBrokenRule(UserAccountFailureRules.EMAIL_ERROR);
                    }
                    // 手机号不能为空且格式要正确
                    else if (!state.Mobile.IsCnPhone())
                    {
                        AddBrokenRule(UserAccountFailureRules.MOBILE_ERROR);
                    }
                    // 用户名被使用
                    else if (UsersAccessor.UsernameExists(state.UserName, ID))
                    {
                        AddBrokenRule(UserAccountFailureRules.USERNAME_EXISTS);
                    }
                    // 邮箱被使用
                    else if (UsersAccessor.EmailExists(state.Email, ID))
                    {
                        AddBrokenRule(UserAccountFailureRules.EMAIL_EXISTS);
                    }
                    // 手机号被使用
                    else if (UsersAccessor.MobileExists(state.Mobile, ID))
                    {
                        AddBrokenRule(UserAccountFailureRules.MOBILE_EXISTS);
                    }
                }
            });

            //权限编号序列组
            string permissionCodes = string.Empty;

            if (state.Permissions != null)
            {
                permissionCodes = string.Join(",", state.Permissions);
            }

            bool success = false;

            if (state.IsModifyBySelf)
            {
                success = UsersAccessor.UpdateFor(ID, state.UserName, state.Email, state.Mobile, state.Title, state.Name);
            }
            else if (string.IsNullOrWhiteSpace(state.Password))
            {
                success = UsersAccessor.UpdateFor(ID, state.UserName, state.Email, state.Mobile, state.Title, state.Name, permissionCodes);
            }
            else
            {
                success = UsersAccessor.UpdateFor(ID, state.UserName, state.Email, state.Mobile, state.Title, state.Name, state.EncryptPassword, permissionCodes);
            }

            return(success);
        }