public async Task <Resultado <UsuarioViewModel> > Update(AtualizacaoUsuarioViewModel atualizacaoUsuario) { var usuario = base.Mapper.Map <Usuario>(atualizacaoUsuario); await Service.Update(usuario); var usuarioViewModel = base.MapToViewModel(usuario); usuarioViewModel.usuarioPerfil = atualizacaoUsuario.UsuarioPerfil; return(Notificador.HasNotification() ? Resultado <UsuarioViewModel> .Failed(Notificador.GetNotificationsMessages()) : Resultado <UsuarioViewModel> .Successfull(usuarioViewModel)); }
public async Task <ActionResult <Resultado <UsuarioViewModel> > > Put(int id, AtualizacaoUsuarioViewModel atualizacaoUsuario) { if (id != atualizacaoUsuario.id) { return(BadRequest()); } if (!ModelState.IsValid) { return(Ok(Resultado <CursoViewModel> .Failed(ModelState.Values.Select(x => x.Errors).ToString()))); } var result = await _service.Update(atualizacaoUsuario); if (result.Success) { var user = await _userManager.FindByIdAsync(result.Data.id.ToString()); var claims = await _userManager.GetClaimsAsync(user); if (claims.Count > 0 && atualizacaoUsuario.UsuarioPerfil == UsuarioPerfil.Usuario) { await _userManager.RemoveClaimsAsync(user, claims); } else if (atualizacaoUsuario.UsuarioPerfil != UsuarioPerfil.Usuario) { var claim = new Claim(atualizacaoUsuario.UsuarioPerfil.ToString(), atualizacaoUsuario.UsuarioPerfil.ToString()); if (claims.Count > 0 && !claims.Select(x => x.Type).Contains(claim.Type)) { await _userManager.RemoveClaimsAsync(user, claims); await _userManager.AddClaimAsync(user, claim); } else if (claims.Count == 0) { await _userManager.AddClaimAsync(user, claim); } } } return(Ok(result)); }