예제 #1
0
        public async Task <PostagemViewModel> InserirAsync(PostagemInput postagemInput)
        {
            Usuario usuarioBanco = await _usuarioRepository.PegarId(postagemInput.UsuarioId);

            if (usuarioBanco is null)
            {
                throw new ArgumentException("Usuário inválido");
            }

            var postagem = new Postagem(postagemInput.Texto, postagemInput.UsuarioId);

            if (!postagem.IsValid())
            {
                throw new ArgumentException("Dados obrigatórios não preenchidos");
            }

            var idPostagem = await _postagemRepository.
                             InserirAsync(postagem)
                             .ConfigureAwait(false);

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