/// <summary> /// Changes Email /// </summary> /// <param name="viewModel">Injected <see cref="SecurityEmailChange"/></param> /// <returns>Instance of <see cref="Task{ViewApplicationUser}"/></returns> public async Task <ViewApplicationUser> ChangeEmail(SecurityEmailChange @viewModel) { ApplicationUser @applicationUser = await FindApplicationUserByEmail(@viewModel.ApplicationUser.Email); IdentityResult @identityResult = await UserManager.ChangeEmailAsync(@applicationUser, @viewModel.NewEmail, await UserManager.GenerateChangeEmailTokenAsync(@applicationUser, @viewModel.NewEmail)); 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 Email at " + DateTime.Now.ToShortTimeString(); Logger.WriteEmailRestoredLog(@logData); return(Mapper.Map <ViewApplicationUser>(@applicationUser)); } else { throw new Exception("Security Error"); } }
public async Task ChangeEmail() { SecurityEmailChange viewModel = new SecurityEmailChange() { NewEmail = "*****@*****.**", ApplicationUser = new ViewApplicationUser { Id = Context.ApplicationUser.FirstOrDefault(x => x.Email == "*****@*****.**").Id, Email = Context.ApplicationUser.FirstOrDefault(x => x.Email == "*****@*****.**").Email } }; await Service.ChangeEmail(viewModel); Assert.Pass(); }