public HttpResponseMessage ResetPassword([FromUri] string email) { //_emailManager = new EmailManager() HttpResponseMessage response = new HttpResponseMessage(); ResponseFormat responseData; var dbUser = db.USERs.Where(c => c.Email == email).FirstOrDefault(); if (dbUser != null) { Random r = new Random(); string validationCode = r.Next(10000, 1000000).ToString("D6"); var jwtManager = JwtTokenManager.GenerateJwtForPasswordReset(validationCode, email); _emailManager = new EmailManager(); _emailManager.Title = StaticStrings.RESET_PASSWORD_TITLE; _emailManager.Content = $"<a style='-webkit-appearance:button; -moz-appearance:button; appearance:button; text-decoration:none; background-color: #D93915; color: white; padding: 1em 1.5em; text-transform: uppercase;' href='{StaticStrings.ClientHost}reset_password?key={jwtManager}'>Reset password</a><p style='font-style: italic;'>This link will expire after 30 minutes.</p>"; _emailManager.Recipients = new List <string>() { email }; _emailManager.SendEmail(); if (_emailManager.isSent) { dbUser.RememberMeToken = validationCode; db.SaveChanges(); response.StatusCode = HttpStatusCode.OK; responseData = ResponseFormat.Success; } else { response.StatusCode = HttpStatusCode.InternalServerError; responseData = ResponseFormat.Fail; responseData.message = ErrorMessages.EMAIL_SEND_FAILED; } } else { response.StatusCode = HttpStatusCode.NotFound; responseData = ResponseFormat.Fail; responseData.message = ErrorMessages.USER_NOT_FOUND; } var json = JsonConvert.SerializeObject(responseData); response.Content = new StringContent(json, Encoding.UTF8, "application/json"); return(response); }