Exemplo n.º 1
0
        public async Task <Dominio.Servicos.Resposta <Modelos.Contato> > Salvar(DTOs.NovoContato dadosContato)
        {
            var resposta = new Resposta <Modelos.Contato>();

            var usuario = await _usuarios.ObterPorId(dadosContato.UsuarioId);

            if (usuario == null)
            {
                resposta.Erro = new ErroObjetoNaoEncontrado("Usuário");
            }

            else
            {
                var contato = new Fabricas.Contato().Nome(dadosContato.Nome)
                              .Celular(dadosContato.Celular)
                              .Telefone(dadosContato.Telefone)
                              .Email(dadosContato.Email)
                              .Usuario(usuario)
                              .Criar();

                contato.Id = await _contatos.Salvar(contato);

                resposta.Resultado = contato;
            }

            return(resposta);
        }
Exemplo n.º 2
0
        public async Task Deve_Cadastrar_Um_Contato_Quando_Enviar_Dados_Certos()
        {
            var contato = new DTOs.NovoContato
            {
                Nome      = "Contato",
                Telefone  = "11 45873214",
                Celular   = "11 985478521",
                Email     = "*****@*****.**",
                UsuarioId = 1
            };

            _usuarios.Setup(repositorio => repositorio.ObterPorId(It.IsAny <int>()))
            .Returns(Task.FromResult(new Modelos.Usuario("", "", "")));

            _contatos.Setup(repositorio => repositorio.Salvar(It.IsAny <Modelos.Contato>()))
            .Returns(Task.FromResult(1));

            var resposta = await _servico.Salvar(contato);

            var contatoCadastrado = resposta.Resultado;

            contatoCadastrado.Id.Should().NotBe(0);
            contatoCadastrado.Nome.Should().Be("Contato");
            contatoCadastrado.Telefone.Should().Be("11 45873214");
            contatoCadastrado.Celular.Should().Be("11 985478521");
            contatoCadastrado.Email.Should().Be("*****@*****.**");
        }
Exemplo n.º 3
0
        public async Task Deve_Retornar_Erro_Quando_Tentar_Cadastrar_Um_Contato_Em_Um_Usuario_Inexistente()
        {
            var contato = new DTOs.NovoContato
            {
                Nome      = "Contato",
                Telefone  = "11 45873214",
                Celular   = "11 985478521",
                Email     = "*****@*****.**",
                UsuarioId = 1
            };

            var resposta = await _servico.Salvar(contato);

            resposta.Erro.Mensagem.Should().Be("Usuário não encontrado(a)!");
            resposta.Erro.StatusCode.Should().Be(404);
            resposta.Erro.GetType().Should().Be(typeof(ErroObjetoNaoEncontrado));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Post([FromHeader(Name = "Authorization")] string token, [FromBody] DTOs.NovoContato dadosContato, [FromRoute] int usuarioId)
        {
            var tokenEhValido = await _servico.ValidarToken(token);

            if (tokenEhValido)
            {
                dadosContato.UsuarioId = usuarioId;
                var resposta = await _servicoContato.Salvar(dadosContato);

                if (resposta.TemErro())
                {
                    return(StatusCode(resposta.Erro.StatusCode, new { resposta.Erro.Mensagem }));
                }

                var id = resposta.Resultado.Id;

                return(Created($"/contatos/{id}", new { Id = id }));
            }

            return(Unauthorized());
        }