public ActionResult <ApiResponse <AdicionarUsuarioCommandOutput, Notificacao> > UsuarioInserir([FromBody] AdicionarUsuarioCommand 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)
                })));
            }
        }
示例#2
0
        public async Task <IResult> AtualizarAsync(UsuarioForUpdateViewModel usuarioForUpdateVireModel)
        {
            var alterarUsuarioCommand = _mapper.Map <AlterarUsuarioCommand>(usuarioForUpdateVireModel);

            var usuarioHandle = new UsuarioHandler(_mapper, _repository, _cryptographyService);

            var result = await usuarioHandle.Handler(alterarUsuarioCommand);

            return(result);
        }
示例#3
0
        public async Task <IResult> InserirAsync(UsuarioForCreationViewModel usuarioForCreationViewModel)
        {
            var cadastrarUsuarioCommand = _mapper.Map <CadastrarUsuarioCommand>(usuarioForCreationViewModel);

            var usuarioHandle = new UsuarioHandler(_mapper, _repository, _cryptographyService);

            var result = await usuarioHandle.Handler(cadastrarUsuarioCommand);

            return(result);
        }
示例#4
0
        public async Task ShouldInvalidateCadastrarUsuarioCommandWhenAlreadyUsuarioWithSameName()
        {
            var usuario = new Usuario
            {
                Id      = 1,
                Nome    = "Teste",
                Sigla   = "FFF",
                Status  = StatusDeCadastro.Normal,
                SetorId = 1,
                Login   = "******",
                Senha   = "teste"
            };

            _repositoryMock.Setup(r => r.Usuario.GetUsuarioByNomeAsync("Teste")).Returns(Task.FromResult(usuario));

            var command = new CadastrarUsuarioCommand(
                usuario.Nome,
                usuario.Sigla,
                usuario.SetorId,
                usuario.Status,
                usuario.Login,
                usuario.Senha
                );

            var result = await _usuarioHandler.Handler(command);

            Assert.AreEqual("Já existe um usuário com mesmo nome cadastrado", ((CommandResult)result).Message);
        }