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); }
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 }); }