// RECEBE AS OPERAÇÕES DOS BROKERS public static void receber() { var factory = new ConnectionFactory() { HostName = "localhost" }; var connection = factory.CreateConnection(); var channel = connection.CreateModel(); channel.QueueDeclare("BROKER", true, false, false, null); Console.WriteLine("ONLINE. Para parar pressione CTRL+C"); var consumidor = new EventingBasicConsumer(channel); consumidor.Received += (model, ea) => { var body = ea.Body; var message = Encoding.UTF8.GetString(body); String[] topic = message.Split('_'); if (topic.Length > 1) { Console.WriteLine("Recebida: '<" + message + ">'"); try { if (topic[0].Contains("info")) { // consultar(topic[0], topic[1]); } if (topic[0].Contains("venda")) { VendasController vendas = new VendasController(); Venda venda = new Venda(); string codigo = topic[0].Substring(6, 5); String[] valores = topic[1].Split(';'); venda.valor = float.Parse(valores[0]); venda.quantidade = float.Parse(valores[1]); vendas.Create(venda, codigo); } if (topic[0].Contains("compra")) { ComprasController compras = new ComprasController(); Compra compra = new Compra(); string codigo = topic[0].Substring(7, 5); String[] valores = topic[1].Split(';'); compra.valor = float.Parse(valores[0]); compra.quantidade = float.Parse(valores[1]); compras.Create(compra, codigo); } } finally { channel.BasicAck(ea.DeliveryTag, false); } } else { channel.BasicAck(ea.DeliveryTag, false); return; } }; channel.BasicConsume(queue: "BROKER", autoAck: true, consumer: consumidor); }