public void format()
 {
     try
     {
         String LAT         = data["LATITUDE"].ToString();
         String LONG        = data["LONGITUDE"].ToString();
         String coordinates = "[" + LONG + "," + LAT + "]";
         data.Remove("LATITUDE");
         data.Remove("LONGITUDE");
         LOCALIZACAO.Add("type", "Point");
         LOCALIZACAO.Add("coordinates", coordinates);
     }
     catch (Exception e)
     {
         X9.OQueRolouNaParada(e, 3);
     }
 }
 /**
  * @param String em formato json com os dados de uma mensagem real-time de um ônibus qualquer.
  * Este método envia duas mensagens ao tópico da ceturb dentro do nosso RabbitMQ,
  * uma delas vai para a fila do popMQ (SQL-Server) e a outra para a fila do popMongo (MongoDB)
  */
 public void send(String dadosEnvio)
 {
     {
         try
         {
             var conteudoMensagem = Encoding.UTF8.GetBytes(dadosEnvio);
             //envia uma cópia para a fila do SQL-Server
             this.channel.BasicPublish(exchange: RabbitTopic, routingKey: this.KeySQL, basicProperties: null, body: conteudoMensagem);
             //envia outra cópia para a fila do MongoDB
             this.channel.BasicPublish(exchange: RabbitTopic, routingKey: this.KeyMongo, basicProperties: null, body: conteudoMensagem);
         }
         catch (Exception e)
         {
             X9.OQueRolouNaParada(e, 5);
         }
     }
 }
Ejemplo n.º 3
0
        protected static void OnMessage(IMessage mensagemDoApache)
        {
            Carteiro carteiro = new Carteiro();

            try
            {
                if (mensagemDoApache is ActiveMQMapMessage)
                {
                    var      mensagemRecebida = mensagemDoApache as ActiveMQMapMessage;
                    var      chaves           = mensagemRecebida.Body.Keys;
                    Mensagem conteudoEnvio    = new Mensagem();
                    foreach (var chave in chaves)
                    {
                        conteudoEnvio.add(chave.ToString(), mensagemRecebida.Body[chave.ToString()]);
                    }
                    conteudoEnvio.format();
                    String mensagemAoRabbit = JsonConvert.SerializeObject(conteudoEnvio);
                    try
                    {
                        carteiro.send(mensagemAoRabbit);
                        if (!isProductionEnv)
                        {
                            X9.showInfo(1, mensagemAoRabbit, null, null);
                        }
                    }
                    catch (Exception co)
                    {
                        X9.OQueRolouNaParada(co, 1);
                    }
                }
            }
            catch (Exception e)
            {
                X9.OQueRolouNaParada(e, 2);
            }
        }
        public Carteiro()

        {
            EnvConfig env = new EnvConfig();

            this.RabbitHost  = env.getRabbitUrlConnection();
            this.RabbitTopic = env.getRabbitTopic();
            this.factory     = new ConnectionFactory()
            {
                HostName = this.RabbitHost
            };
            this.KeyMongo = env.getRabbitRoutingKeyMongo();
            this.KeySQL   = env.getRabbitRoutingKey();
            try
            {
                this.connection = factory.CreateConnection();
                this.channel    = connection.CreateModel();
                channel.ExchangeDeclare(exchange: RabbitTopic, type: "topic", durable: true);
            }
            catch (Exception e)
            {
                X9.OQueRolouNaParada(e, 4);
            }
        }