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