コード例 #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
            });
        }
コード例 #2
0
        public async Task <IActionResult> InserirPostagem([FromBody] PostagemInput postagemInput)
        {
            try
            {
                var postagem = await _postagemAppService
                               .InserirPostagem(postagemInput)
                               .ConfigureAwait(false);

                return(Created("", postagem));
            }
            catch (ArgumentException arg)
            {
                return(BadRequest(arg.Message));
            }
        }
コード例 #3
0
        public async Task <Postagem> InserirPostagem(PostagemInput input)
        {
            var usuarioId = _logado.ObterUsuarioLogado();

            var postagem = new Postagem(input.Texto, input.FotoPost, usuarioId);

            if (!postagem.EhValido())
            {
                throw new ArgumentException("Você não pode inserir uma postagem vazia");
            }

            int id = await _postagemRepository
                     .InserirPostagem(postagem)
                     .ConfigureAwait(false);

            postagem.SetId(id);

            return(postagem);
        }