private async Task <bool> UpdateEngineer(ServiceEngineerViewModel serviceEngineer) { // Alterar usuario ApplicationUser user = await _userManager.FindByEmailAsync(serviceEngineer.Registration.Email); user.UserName = serviceEngineer.Registration.UserName; IdentityResult result = await _userManager.UpdateAsync(user); if (result.Succeeded == false) { result.Errors.ToList().ForEach((error) => ModelState.AddModelError(string.Empty, error.Description)); return(result.Succeeded); } // Alterar senha string token = await _userManager.GeneratePasswordResetTokenAsync(user); IdentityResult passwordResult = await _userManager.ResetPasswordAsync(user, token, serviceEngineer.Registration.Password); if (passwordResult.Succeeded == false) { passwordResult.Errors.ToList().ForEach((error) => ModelState.AddModelError(string.Empty, error.Description)); return(passwordResult.Succeeded); } // Alterar claims user = await _userManager.FindByEmailAsync(serviceEngineer.Registration.Email); MongoClaim isActiveClaim = user.Claims.SingleOrDefault(p => p.Type == "IsActive"); IdentityResult removeClaimResult = await _userManager.RemoveClaimAsync(user, new Claim(isActiveClaim.Type, isActiveClaim.Value)); IdentityResult addClaimResult = await _userManager.AddClaimAsync(user, new Claim(isActiveClaim.Type, serviceEngineer.Registration.IsActive.ToString())); return(true); }
/// <summary> /// Creates a <see cref="Claim"/> object from a <see cref="MongoClaim"/> /// </summary> /// <param name="mongoClaim">A <see cref="MongoClaim"/>.</param> /// <returns> A <see cref="Claim"/>.</returns> public static Claim ToClaim(this MongoClaim mongoClaim) { return(new Claim(mongoClaim.Type, mongoClaim.Value, null, mongoClaim.Issuer)); }