public async Task <IActionResult> EmailPasswordReset(ResetPasswordEmailRequest resetPasswordModel)
        {
            if (resetPasswordModel == null)
            {
                return(NotFound());
            }

            MainResponse passwordReset = await _identityService.EmailResetPassword(resetPasswordModel.Email, resetPasswordModel.Password, resetPasswordModel.Token);

            if (passwordReset.Success)
            {
                return(Ok(new SimpleSuccessResponse
                {
                    Success = true,
                    Message = "Password has been changed"
                }));
            }

            else
            {
                if (passwordReset.Errors.Count() > 1)
                {
                    return(BadRequest(new AuthenticationFailedResponse
                    {
                        Errors = passwordReset.Errors
                    }));
                }
                else
                {
                    return(BadRequest(passwordReset.Errors.ToList()[0]));
                }
            }
        }
        public static BasicResponse resetUserPasswordEmailImplementation(ResetPasswordEmailRequest request)
        {
            if (String.IsNullOrWhiteSpace(request.email))
            {
                return(new BasicResponse {
                    message = "Please enter an email.", status = 601, success = false
                });
            }

            using (var db = new UniversalGymEntities())
            {
                var user = db.Users.SingleOrDefault(f => f.Email == request.email);
                if (user == null)
                {
                    return(new BasicResponse {
                        message = "User not found.", status = 404, success = false
                    });
                }

                var forgotPasswordBody = String.Format("Someone forgot a password :/ -- {0}", request.email);
                EmailNoTemplateHelper.SendEmail("User forgot password", "*****@*****.**", forgotPasswordBody);

                user.CurrentToken = Guid.NewGuid().ToString();
                db.SaveChanges();

                var link = Constants.PedalWebUrl + "user.html#/resetPassword/" + user.UserId + "/" + user.CurrentToken;;
                EmailTemplateHelper.SendEmail("Reset Password Link - Pedal", request.email, link, user.FirstName, "reset_password.html");

                return(new BasicResponse {
                    message = "User email sent successfully", status = 3, success = true
                });
            }
        }
        // Send email to reset password for user

        public BasicResponse resetUserPasswordEmail(ResetPasswordEmailRequest request)
        {
            try
            {
                Logs.LogsInsertAction("Reset user password attempted");
                var validResponse = Users.resetUserPasswordEmail.resetUserPasswordEmailImplementation(request);
                if (validResponse.success == true)
                {
                    Logs.LogsInsertAction("Reset user password success: " + validResponse.message);
                }
                else
                {
                    Logs.LogsInsertAction("Reset user password failure: " + validResponse.message);
                }
                return(validResponse);
            }
            catch (Exception exception)
            {
                Logs.LogsInsertError(exception);
                return(new BasicResponse {
                    message = "An error occured. The Pedal team has been notified.", success = false
                });
            }
        }