public async Task <ActionResult> Registrar(Usuario usuario) { var mensagensDeErro = ServicoDeValidacaoDeGravacaoDeUsuario.Validar(usuario); if (mensagensDeErro.Any()) { return(BadRequest(mensagensDeErro)); } var identityUser = new IdentityUser { UserName = usuario.Email, Email = usuario.Email, EmailConfirmed = true }; var result = await userManager.CreateAsync(identityUser, usuario.Senha); if (!result.Succeeded) { return(BadRequest(result.Errors)); } var claims = new List <Claim> { new Claim("Nome", usuario.Nome), new Claim("Email", usuario.Email), new Claim("Perfis", usuario.PerfisTexto) }; await userManager.AddClaimsAsync(identityUser, claims); return(CreatedAtAction(nameof(Obter), new { Id = identityUser.Id }, userManager.FindByIdAsync(identityUser.Id))); }
public async Task <IActionResult> Atualizar(String identificador, Usuario usuario) { if (identificador != usuario.Id) { return(BadRequest()); } var mensagensDeErro = ServicoDeValidacaoDeGravacaoDeUsuario.Validar(usuario, false); if (mensagensDeErro.Any()) { return(BadRequest(mensagensDeErro)); } var usuarioExistente = await userManager.FindByIdAsync(usuario.Id); if (usuarioExistente == null) { return(NotFound()); } usuarioExistente.UserName = usuario.Email; usuarioExistente.Email = usuario.Email; var claims = new List <Claim> { new Claim("Nome", usuario.Nome), new Claim("Email", usuario.Email), new Claim("Perfis", usuario.PerfisTexto) }; await userManager.UpdateAsync(usuarioExistente); await userManager.RemoveClaimsAsync(usuarioExistente, await userManager.GetClaimsAsync(usuarioExistente)); await userManager.AddClaimsAsync(usuarioExistente, claims); //falta senha return(NoContent()); }