public Member AddMember(MemberRegisterViewModel member)
 {
     //Member newMember = _connection.DbPath.ExecStoredProcedure<Member>("AddMember",
     //new
     //{
     //    member.NickName,
     //    member.PasswordHash,
     //    member.PasswordSalt 
        
     //}).FirstOrDefault();
     //return newMember;
     //FAKE DATA
     return new Member() {NickName = member.NickName};
 }
        public ResultSet<Member> AddMember(MemberRegisterViewModel member)
        {
            var result = new ResultSet<Member>();

            /******This nickname is exists*******************/
            if (_memberRepository.GetMemberByNickname(member.NickName) != null)
            {
                result.Message = "This nickname is already in use";
                return result;
            }
             

            if (!string.IsNullOrEmpty(member.Password) && member.Password.Length > 16)
            {
                result.Message = "Invalid password string length";
                return result;
            }

             
            if (!string.IsNullOrEmpty(member.Password))
            {
                string hash, salt;
                _hashProvider.GetHashAndSaltString(member.Password, out hash, out salt);
                member.PasswordHash = hash;
                member.PasswordSalt = salt;
            }
            var newMember = _memberRepository.AddMember(member);

            if (newMember != null)
            {


                result.Success = true;
                result.Message = Messages.OperationSuccess;
                result.Object = newMember;
            }

            return result;
        }
        public ActionResult Register(MemberRegisterViewModel member, string returnUrl = "")
        {
            var returnModel = new RegistrationLoginViewModel()
            {
                LoginViewModel = new MemberLoginViewModel(),
                RegistrationViewModel = member,
                Error = Errors(GetModelErrors())
            };
            if (ModelState.IsValid)
            {

                ResultSet<Member> resultMember = _memberBusiness.AddMember(member);

                if (!resultMember.Success)
                {
                    ModelState.AddModelError("Error", resultMember.Message);
                } 
            }



            returnModel.Error = Errors(GetModelErrors()); 
            return Json(returnModel);
        }