Пример #1
0
        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)
                })));
            }
        }