public async Task <ActionResult <ResponseStatusViewModel> > ResetPassword(UserViewModel model, string id)
        {
            ResponseStatusViewModel res = new ResponseStatusViewModel();

            Regex emailRegex = new Regex(@"^\S+@\S+\.\S+$");
            var   emailMatch = emailRegex.Match(model.Email);

            if (!CheckResult(model.Id, model.Name, model.UserName, model.Email) && emailMatch.Success && id.Equals(model.Id.Trim()))
            {
                res.Result  = false;
                res.Message = Failed;

                return(new BadRequestObjectResult(res));
            }

            var user = await userManager.FindByIdAsync(model.Id);

            if (user != null)
            {
                await AServices.SendPasswordResetAsync(user);

                res.Result  = true;
                res.Message = Succeeded;
                return(new OkObjectResult(res));
            }

            res.Result  = false;
            res.Message = Failed;

            return(new BadRequestObjectResult(res));
        }
Example #2
0
        public async Task <ActionResult> Post([FromBody] ResetPasswordRequestViewModel model)
        {
            if (!CheckResult(model.Name, model.Username, model.Email))
            {
                return(new UnauthorizedResult());
            }

            var user = await userManager.FindByNameAsync(model.Username);

            if (user != null)
            {
                // Check user creditentals

                if (model.Name.Trim().Equals(user.Name) && model.Email.Trim().Equals(user.Email))
                {
                    await AServices.SendPasswordResetAsync(user);

                    return(new OkResult());
                }
            }
            return(new UnauthorizedResult());
        }