public async Task <List <PostagemViewModel> > ObterListaPostagemPorUsuarioIdAsync(int postagemId)
        {
            List <Postagem> listaPostagem = await _postagemRepository
                                            .ObterListaPostagemPorUsuarioIdAsync(postagemId)
                                            .ConfigureAwait(false);

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



            var listaPostagemMV = new List <PostagemViewModel>();

            foreach (var postagem in listaPostagem)
            {
                Usuario usuarioBanco = await _usuarioRepository.PegarId(postagem.UsuarioId);

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

                listaPostagemMV.Add(postagemMV);
            }

            return(listaPostagemMV);
        }
Beispiel #2
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
            });
        }