Ejemplo n.º 1
0
        public async Task <ComentarioViewModel> InserirAsync(ComentarioInput comentarioInput)
        {
            var postagemIn = await _postagemRepository
                             .ObterPostagemPorIdAsync(comentarioInput.PostagemId)
                             .ConfigureAwait(false);

            if (postagemIn is null)
            {
                throw new ArgumentException("Postagem não encontrada.");
            }
            var comentario = new Comentario(comentarioInput.PostagemId,
                                            comentarioInput.UsuarioId,
                                            comentarioInput.Texto);

            comentario.IsValid();

            var usuario = await _usuarioRespository
                          .PegarId(comentario.UsuarioId)
                          .ConfigureAwait(false);

            if (usuario is null)
            {
                throw new ArgumentException("Usuario não encontrado.");
            }

            var postagem = await _postagemRepository
                           .ObterListaPostagemPorUsuarioIdAsync(comentario.UsuarioId)
                           .ConfigureAwait(false);

            if (postagem is null)
            {
                throw new ArgumentException("Postagem não encontrada.");
            }

            var id = await _comentarioRepository
                     .InserirAsync(comentario)
                     .ConfigureAwait(false);


            return(new ComentarioViewModel()
            {
                IdComentario = id,
                IdPostagem = comentario.PostagemId,
                UsuarioId = comentario.UsuarioId,
                NomeUsuario = usuario.Nome,
                Comentario = comentario.Texto,
                Criacao = comentario.Criacao
            });
        }
Ejemplo n.º 2
0
        public async Task <PostagemViewModel> ObterPostagemPorIdAsync(int postagemId)
        {
            Postagem postagem = await _postagemRepository
                                .ObterPostagemPorIdAsync(postagemId)
                                .ConfigureAwait(false);

            if (postagem is null)
            {
                throw new ArgumentException("Lista de postagens não encontrada!");
            }

            Usuario usuarioBanco = await _usuarioRepository.PegarId(postagem.UsuarioId);

            return(new PostagemViewModel()
            {
                Id = postagem.Id,
                UsuarioId = usuarioBanco.Id,
                NomeUsuario = usuarioBanco.Nome,
                Texto = postagem.Texto,
                Criacao = postagem.Criacao
            });
        }