public ActionResult Index(string dummy) { var data = new RegisterModel(); var response = new RegisterResponseModel(); if (Settings.ReCaptchaPublic != "" && Settings.ReCaptchaPrivate != "") { if (UserValidation.IsValidReCaptcha(Request["g-recaptcha-response"])) { response.ReCaptcha.Success = true; } else { response.ReCaptcha.Success = false; response.ReCaptcha.Reason = "Invalid ReCaptcha"; } } else { response.ReCaptcha.Success = true; } data.Username = Request["username"]; data.Password = Request["password"]; data.ConfirmPassword = Request["confirmPassword"]; data.Email = Request["email"]; if (_userMethods.UserExists(data.Username)) { response.Username.Success = false; response.Username.Reason = "This username has already been taken"; } else { response.Username.Success = true; } if (!UserValidation.IsValidPassword(data.Password)) { response.Password.Success = false; response.Password.Reason = "Password must contain:<br/>A Capital Letter<br/>A Lowercase Letter<br/>A Number<br/>A Special Character"; } else if (data.Password != data.ConfirmPassword) { response.Password.Success = false; response.Password.Reason = "The passwords do not match"; } else { response.Password.Success = true; } if (!UserValidation.IsValidEmail(data.Email)) { response.Email.Success = false; response.Email.Reason = "Invalid email address"; } else if (_userMethods.EmailExists(data.Email)) { response.Email.Success = false; response.Email.Reason = "Email address already in use"; } else { response.Email.Success = true; } if (!response.IsValidRegistration()) { return(View(new Tuple <RegisterModel, RegisterResponseModel, bool>(data, response, false))); } RPNETForum.Users.Create(data); return(View("Complete")); }