public ICommandResult Handle(AtualizarUsuarioCommand command) { try { if (!command.ValidarCommand()) { return(new CommandResult(false, "Por favor, corrija as inconsistências abaixo", command.Notifications)); } int id = command.Id; string nome = command.Nome; Email login = new Email(command.Login); string senha = command.Senha; Usuario usuario = new Usuario(id, nome, login, senha); AddNotifications(login.Notifications); if (usuario.Id == 0) { AddNotification("Id", "Id não está vinculado à operação solicitada"); } if (!_repository.CheckId(usuario.Id)) { AddNotification("Id", "Este Id não está cadastrado! Impossível prosseguir com este Id."); } if (Invalid) { return(new CommandResult(false, "Por favor, corrija as inconsistências abaixo", Notifications)); } _repository.Atualizar(usuario); return(new CommandResult(true, "Usuário atualizado com sucesso!", new { Id = usuario.Id, Nome = usuario.Nome, Login = usuario.Login.ToString(), Senha = usuario.Senha })); } catch (Exception ex) { throw ex; } }
public ActionResult <ApiResponse <AtualizarUsuarioCommandOutput, Notificacao> > UsuarioAlterar([FromBody] AtualizarUsuarioCommand command) { try { if (Request.Headers["ChaveAPI"].ToString() != _ChaveAPI) { return(StatusCode(StatusCodes.Status401Unauthorized, new ApiResponse <object, Notificacao>("Acesso negado", new List <Notificacao>() { new Notificacao("Chave da API", "ChaveAPI não corresponde com a chave esperada") }))); } if (command == null) { return(StatusCode(StatusCodes.Status400BadRequest, new ApiResponse <object, Notificacao>("Parâmentros inválidos", new List <Notificacao>() { new Notificacao("Parâmetros de entrada", "Parâmetros de entrada estão nulos") }))); } if (!command.ValidarCommand()) { return(StatusCode(StatusCodes.Status400BadRequest, new ApiResponse <object, Notificacao>("Parâmentros inválidos", command.Notificacoes))); } var result = _handler.Handler(command); if (result.Sucesso) { return(StatusCode(StatusCodes.Status200OK, new ApiResponse <object, Notificacao>(result.Mensagem, result.Dados))); } else { return(StatusCode(StatusCodes.Status400BadRequest, new ApiResponse <object, Notificacao>(result.Mensagem, result.Erros))); } } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, new ApiResponse <object, Notificacao>("Erro", new List <Notificacao>() { new Notificacao("Erro", e.Message) }))); } }