Пример #1
0
        public async Task <Dominio.Servicos.Resposta <Modelos.Usuario> > Salvar(DTOs.NovoUsuario dadosUsuario)
        {
            var resposta = new Resposta <Modelos.Usuario>();
            var senha    = new Modelos.Senha();

            if (string.IsNullOrWhiteSpace(dadosUsuario.Nome))
            {
                resposta.Erro = new ErroAtributoEmBranco("nome");
            }

            else if (string.IsNullOrWhiteSpace(dadosUsuario.Login))
            {
                resposta.Erro = new ErroAtributoEmBranco("login");
            }

            else if (string.IsNullOrWhiteSpace(dadosUsuario.Senha))
            {
                resposta.Erro = new ErroAtributoEmBranco("senha");
            }

            else
            {
                var usuario = new Modelos.Usuario(dadosUsuario.Login, senha.GerarHash(dadosUsuario.Senha), dadosUsuario.Nome);

                usuario.Id = await _usuarios.Salvar(usuario);

                resposta.Resultado = usuario;
            }

            return(resposta);
        }
Пример #2
0
        public async Task <Dominio.Servicos.Resposta <Modelos.Contato> > Atualizar(DTOs.AlteraContato dadosContato)
        {
            var resposta = new Resposta <Modelos.Contato>();

            var contatoEncontrado = await _contatos.ObterPorId(dadosContato.Id);

            if (contatoEncontrado == null)
            {
                resposta.Erro = new ErroObjetoNaoEncontrado("Contato");
            }

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

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

                resposta.Resultado = contato;
            }

            return(resposta);
        }
Пример #3
0
        public async Task <Dominio.Servicos.Resposta <Modelos.Contato> > Deletar(int id)
        {
            var resposta = new Resposta <Modelos.Contato>();

            if (await ContatoNaoEncontrado(id))
            {
                resposta.Erro = new ErroObjetoNaoEncontrado("Contato");
            }

            else
            {
                await _contatos.Deletar(id);
            }

            return(resposta);
        }
Пример #4
0
        public async Task <Dominio.Servicos.Resposta <Modelos.Usuario> > ObterPorId(int id)
        {
            var resposta = new Resposta <Modelos.Usuario>();

            var usuario = await _usuarios.ObterPorId(id);

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

            else
            {
                resposta.Resultado = usuario;
            }

            return(resposta);
        }
Пример #5
0
        public async Task <Dominio.Servicos.Resposta <Modelos.Contato> > ObterPorId(int id)
        {
            var resposta = new Resposta <Modelos.Contato>();

            var contato = await _contatos.ObterPorId(id);

            if (contato == null)
            {
                resposta.Erro = new ErroObjetoNaoEncontrado("Contato");
            }

            else
            {
                resposta.Resultado = contato;
            }

            return(resposta);
        }
Пример #6
0
        public async Task <Dominio.Servicos.Resposta <List <Modelos.Contato> > > ListarPorUsuarioId(int usuarioId)
        {
            var resposta = new Resposta <List <Modelos.Contato> >();

            var usuario = await _usuarios.ObterPorId(usuarioId);

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

            else
            {
                resposta.Resultado = usuario.Contatos.ToList();
            }

            return(resposta);
        }
Пример #7
0
        public async Task <Dominio.Servicos.Resposta <Modelos.Usuario> > Deletar(int id)
        {
            var resposta = new Resposta <Modelos.Usuario>();

            var usuario = await _usuarios.ObterPorId(id);

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

            else if (ExisteContatosVinculados(usuario))
            {
                resposta.Erro = new ErroObjetoPossuiObjetosVinculados("usuário", "contatos");
            }

            else
            {
                await _usuarios.Deletar(id);
            }

            return(resposta);
        }
Пример #8
0
        public async Task <Dominio.Servicos.Resposta <DTOs.Usuario> > Autenticar(DTOs.NovoUsuario dadosUsuario)
        {
            var resposta = new Resposta <DTOs.Usuario>();
            var senha    = new Modelos.Senha();

            var usuario = await _usuarios.ObterPorLogin(dadosUsuario.Login);

            if (usuario == null)
            {
                resposta.Erro = new ErroAtributoInvalido("Login");
                return(resposta);
            }

            bool senhaEhValida = senha.Validar(usuario.Senha, dadosUsuario.Senha);

            if (senhaEhValida)
            {
                usuario.AdicionarToken(Guid.NewGuid().ToString());

                await _usuarios.Salvar(usuario);

                resposta.Resultado = new DTOs.Usuario
                {
                    Id    = usuario.Id,
                    Login = usuario.Login,
                    Token = usuario.Token,
                    Nome  = usuario.Nome
                };
            }

            else
            {
                resposta.Erro = new ErroAtributoInvalido("Senha");
            }

            return(resposta);
        }