public ICommandResult Handle(CriarComentarioCommand command)
        {
            command.Validar();
            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados inválidos", command.Notifications));
            }

            var pacoteExiste = _pacoteRepositorio.BuscarPorId(command.IdPacote);

            if (pacoteExiste == null)
            {
                return(new GenericCommandResult(false, "Pacote não encontrado", null));
            }

            var resultado = new ModeradorConteudo().Moderar(command.Texto);

            if (resultado != null)
            {
                var palavras = resultado.Select(
                    r =>
                {
                    return(new
                    {
                        palavra = r.Term
                    });
                }
                    ).ToArray();
                return(new GenericCommandResult(false, "Este comentário fere nossas politicas", palavras));
            }

            Reserva comentario = new Comentario(command.Texto, "Feliz", command.IdUsuario, command.IdPacote, EnStatusComentario.Publicado);

            if (comentario.Invalid)
            {
                return(new GenericCommandResult(false, "Dados inválidos", comentario.Notifications));
            }
            _comentarioRepositorio.Adicionar(comentario);

            return(new GenericCommandResult(true, "Comentário Adicionado", null));
        }
Ejemplo n.º 2
0
        public ICommandResult Handle(CriarComentárioCommand command)
        {
            // Validar Command
            command.Validar();

            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Dados do comentario inválido", command.Notifications));
            }

            var comentario = new Comentario(command.Texto, command.Sentimento, command.IdUsuario, command.IdPacote, command.Status);

            // Salvar comentario
            if (comentario.Invalid)
            {
                return(new GenericCommandResult(false, "Comentario Inválido", command.Notifications));
            }

            // Salvar comentario no banco
            _comentarioRepositorio.Adicionar(comentario);

            // Mensagem sucesso
            return(new GenericCommandResult(true, "Comentario criado", comentario));
        }