public HttpResponseMessage ForgotPassword(AppUserForgotPasswordRequest forgotPasswordRequest) { //where are we checking if it is null or valid? if (forgotPasswordRequest == null) { ModelState.AddModelError("", "missing body data"); } if (!ModelState.IsValid) { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } bool success = appUserService.ForgotPassword(forgotPasswordRequest); if (success) { return(Request.CreateResponse(HttpStatusCode.OK, new SuccessResponse())); } else { return(Request.CreateResponse(HttpStatusCode.BadRequest, new ErrorResponse("Unable to find that email address."))); } }
// this defines a public method named ForgotPassword that returns // an instance of ForgotPasswordResult and takes one parameter of type // ForgotPasswordRequest. public bool ForgotPassword(AppUserForgotPasswordRequest req) { ForgotPasswordResult forgotPassword = new ForgotPasswordResult(); string ResetToken = null; string FirstName = null; dataProvider.ExecuteNonQuery( "AppUser_Validate", (parameters) => { parameters.AddWithValue("@Email", req.Email); parameters.Add("@FirstName", SqlDbType.NVarChar, 20).Direction = ParameterDirection.Output; parameters.Add("@ResetToken", SqlDbType.NVarChar, 50).Direction = ParameterDirection.Output; }, // the stuff above goes to the database, after the database code is finsihed, gets the data or nulls. (parameters) => //setting empty box to be filled when we get the data back from database. { FirstName = parameters["@FirstName"].Value as string; ResetToken = parameters["@ResetToken"].Value as string; }); if (ResetToken != null) { EmailSenderService.SendForgotPasswordEmail(FirstName, ResetToken, req.Email).Wait(); return(true); } else { return(false); } }