/// <summary> /// Resets Password /// </summary> /// <param name="viewModel">Injected <see cref="SecurityPasswordReset"/></param> /// <returns>Instance of <see cref="Task{ViewApplicationUser}"/></returns> public async Task <ViewApplicationUser> ResetPassword(SecurityPasswordReset @viewModel) { ApplicationUser @applicationUser = await FindApplicationUserByEmail(@viewModel.Email); IdentityResult @identityResult = await UserManager.ResetPasswordAsync(@applicationUser, await UserManager.GeneratePasswordResetTokenAsync(@applicationUser), @viewModel.NewPassword); if (@identityResult.Succeeded) { @applicationUser.ApplicationUserTokens.Add(new ApplicationUserToken { Name = Guid.NewGuid().ToString(), LoginProvider = JwtSettings.Value.JwtIssuer, ApplicationUser = @applicationUser, UserId = @applicationUser.Id, Value = TokenService.WriteJwtToken(TokenService.GenerateJwtToken(@applicationUser)) }); // Log string @logData = @applicationUser.GetType().Name + " with Email " + @applicationUser.Email + " restored its Password at " + DateTime.Now.ToShortTimeString(); Logger.WritePasswordRestoredLog(@logData); return(Mapper.Map <ViewApplicationUser>(@applicationUser)); } else { throw new Exception("Security Error"); } }
public async Task ResetPassword() { SecurityPasswordReset viewModel = new SecurityPasswordReset() { Email = Context.ApplicationUser.FirstOrDefault(x => x.Email == "*****@*****.**").Email, NewPassword = "******" }; await Service.ResetPassword(viewModel); Assert.Pass(); }