public void EnviarParaFila(IConfigQueueRabbitMQ configuracaoDeEnvio, ObjetoParaEnvioEmJson objetoParaEnvioEmJson)
        {
            try
            {
                using (var connection = _fabricaDeConexoes.CreateConnection())
                    using (var channel = connection.CreateModel())
                    {
                        channel.QueueDeclare(
                            queue: configuracaoDeEnvio.Queue,
                            durable: configuracaoDeEnvio.Durable,
                            exclusive: configuracaoDeEnvio.Exclusive,
                            autoDelete: configuracaoDeEnvio.AutoDelete,
                            arguments: configuracaoDeEnvio.Arguments
                            );

                        var json = JsonConvert.SerializeObject(objetoParaEnvioEmJson);
                        var body = Encoding.UTF8.GetBytes(json);

                        channel.BasicPublish(
                            exchange: configuracaoDeEnvio.Exchange,
                            routingKey: configuracaoDeEnvio.RoutingKey,
                            basicProperties: null,
                            body: body
                            );
                    }
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 2
0
        public ReceberDaFilaBase(
            IConfigQueueRabbitMQ configuracaoParaRecebimento,
            IServicoDeDominioParaProcessamentoDeFilaBase <ObjetoRecebidoEmJson> servicoDeDominio
            )
        {
            _configuracao      = new ConfigRabbitMQ();
            _fabricaDeConexoes = new ConnectionFactory
            {
                HostName           = _configuracao.HostName,
                UserName           = _configuracao.UserName,
                Password           = _configuracao.Password,
                RequestedHeartbeat = _configuracao.RequestedHeartbeat
            };
            _configuracaoParaRecebimento = configuracaoParaRecebimento;
            _servicoDeDominio            = servicoDeDominio;

            _conexao = _fabricaDeConexoes.CreateConnection();
            _conexao.ConnectionShutdown += RabbitMQ_ConnectionShutdown;
            _canal = _conexao.CreateModel();
            _canal.QueueDeclare(
                queue: _configuracaoParaRecebimento.Queue,
                durable: _configuracaoParaRecebimento.Durable,
                exclusive: _configuracaoParaRecebimento.Exclusive,
                autoDelete: _configuracaoParaRecebimento.AutoDelete,
                arguments: _configuracaoParaRecebimento.Arguments
                );
        }