public HttpResponseMessage AddUser(UserParam data)
        {
            string content = this._addUser(data);

            return(new HttpResponseMessage
            {
                Content = new StringContent(content, Encoding.UTF8, "application/json")
            });
        }
        private bool CheckAddUserParameters(UserParam parameter, out string result)
        {
            if (!OpenApiHelper.CheckSystemParameters(parameter.app_key, parameter.timestamp, parameter.sign, out result))
            {
                return(false);
            }
            parameter.user_name = DataHelper.CleanSearchString(parameter.user_name);
            if (string.IsNullOrWhiteSpace(parameter.user_name))
            {
                result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Parameters_Format_Error, "user_name");
                return(false);
            }
            if (MemberProcessor.FindMemberByUsername(parameter.user_name) != null)
            {
                result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Parameters_Format_Error, "user_name");
                return(false);
            }
            Regex regex  = new Regex("^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", RegexOptions.Compiled);
            Regex regex2 = new Regex("^0?(13|15|18|14|17)[0-9]{9}$", RegexOptions.Compiled);

            if (!string.IsNullOrWhiteSpace(parameter.email))
            {
                if (!regex.IsMatch(parameter.email))
                {
                    result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Parameters_Format_Error, "email");
                    return(false);
                }
                if (MemberProcessor.FindMemberByEmail(parameter.email) != null)
                {
                    result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Parameters_Format_Error, "email");
                    return(false);
                }
            }
            if (!string.IsNullOrWhiteSpace(parameter.mobile))
            {
                if (!regex2.IsMatch(parameter.mobile))
                {
                    result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Parameters_Format_Error, "mobile");
                    return(false);
                }
                if (MemberProcessor.FindMemberByCellphone(parameter.mobile) != null)
                {
                    result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Parameters_Format_Error, "mobile");
                    return(false);
                }
            }
            return(true);
        }
        private string _addUser(UserParam data)
        {
            string result = default(string);

            if (this.CheckAddUserParameters(data, out result))
            {
                SiteSettings siteSettings = HiContext.Current.SiteSettings;
                string       text         = OpenApiSign.Sign(data.SignStr(siteSettings.CheckCode), "MD5", "utf-8");
                if (text.Equals(data.sign))
                {
                    result = this.lastAddUser(data);
                    return(result);
                }
                result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Invalid_Signature, "sign");
                return(result);
            }
            return(result);
        }
        private string lastAddUser(UserParam parameter)
        {
            string     format     = "{{\"user_add_response\":{{\"user\":{{ \"uid\":\"{0}\",\"password\":\"{1}\",\"created\":\"{2}\" }} }} }}";
            MemberInfo memberInfo = new MemberInfo();

            memberInfo.GradeId   = MemberProcessor.GetDefaultMemberGrade();
            memberInfo.UserName  = parameter.user_name;
            memberInfo.RealName  = parameter.real_name;
            memberInfo.Email     = parameter.email;
            memberInfo.CellPhone = parameter.mobile;
            string text = Globals.RndStr(128, true);

            if (string.IsNullOrWhiteSpace(parameter.password))
            {
                parameter.password = Globals.RndStr(6, true);
            }
            string password = parameter.password;

            password = (memberInfo.Password = Users.EncodePassword(password, text));
            memberInfo.PasswordSalt = text;
            if (parameter.sex.IndexOf("男") >= 0)
            {
                memberInfo.Gender = Gender.Female;
            }
            else if (parameter.sex.IndexOf("女") >= 0)
            {
                memberInfo.Gender = Gender.Female;
            }
            else
            {
                memberInfo.Gender = Gender.NotSet;
            }
            memberInfo.BirthDate  = parameter.birthday;
            memberInfo.RegionId   = RegionHelper.GetRegionId(parameter.town, parameter.district, parameter.city, parameter.state);
            memberInfo.Address    = parameter.address;
            memberInfo.CreateDate = DateTime.Now;
            int num = MemberProcessor.CreateMember(memberInfo);

            if (num > 0)
            {
                return(string.Format(format, num, parameter.password, memberInfo.CreateDate.ToString("yyyy-MM-dd HH:mm:ss")));
            }
            return(OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.System_Error, "create user"));
        }
        public HttpResponseMessage AddUser()
        {
            NameValueCollection nameValueCollection = base.Request.RequestUri.ParseQueryString();
            UserParam           userParam           = new UserParam();

            if (nameValueCollection.AllKeys.Contains("app_key"))
            {
                userParam.app_key = nameValueCollection["app_key"];
            }
            if (nameValueCollection.AllKeys.Contains("timestamp"))
            {
                userParam.timestamp = nameValueCollection["timestamp"];
            }
            if (nameValueCollection.AllKeys.Contains("sign"))
            {
                userParam.sign = nameValueCollection["sign"];
            }
            if (nameValueCollection.AllKeys.Contains("user_name"))
            {
                userParam.user_name = nameValueCollection["user_name"];
            }
            if (nameValueCollection.AllKeys.Contains("password"))
            {
                userParam.password = nameValueCollection["password"];
            }
            if (nameValueCollection.AllKeys.Contains("created") && !string.IsNullOrEmpty(nameValueCollection["created"]))
            {
                userParam.created = Convert.ToDateTime(nameValueCollection["created"]);
            }
            else
            {
                userParam.created = DateTime.Now;
            }
            if (nameValueCollection.AllKeys.Contains("real_name"))
            {
                userParam.real_name = nameValueCollection["real_name"];
            }
            if (nameValueCollection.AllKeys.Contains("mobile"))
            {
                userParam.mobile = nameValueCollection["mobile"];
            }
            if (nameValueCollection.AllKeys.Contains("email"))
            {
                userParam.email = nameValueCollection["email"];
            }
            if (nameValueCollection.AllKeys.Contains("sex"))
            {
                userParam.sex = nameValueCollection["sex"];
            }
            if (nameValueCollection.AllKeys.Contains("birthday") && !string.IsNullOrEmpty(nameValueCollection["birthday"]))
            {
                userParam.birthday = Convert.ToDateTime(nameValueCollection["birthday"]);
            }
            if (nameValueCollection.AllKeys.Contains("state"))
            {
                userParam.state = nameValueCollection["state"];
            }
            if (nameValueCollection.AllKeys.Contains("city"))
            {
                userParam.city = nameValueCollection["city"];
            }
            if (nameValueCollection.AllKeys.Contains("district"))
            {
                userParam.district = nameValueCollection["district"];
            }
            if (nameValueCollection.AllKeys.Contains("town"))
            {
                userParam.town = nameValueCollection["town"];
            }
            if (nameValueCollection.AllKeys.Contains("address"))
            {
                userParam.address = nameValueCollection["address"];
            }
            string content = this._addUser(userParam);

            return(new HttpResponseMessage
            {
                Content = new StringContent(content, Encoding.UTF8, "application/json")
            });
        }