//funcion para el get de la coordenada public async Task <Localizacion> GetCordenadaAsync(string localizar) { try { Localizacion Alocalizar = JsonConvert.DeserializeObject <Localizacion>(localizar); string url = "https://nominatim.openstreetmap.org/search?" + "street=" + Alocalizar.Calle + "+" + Alocalizar.Numero + "&country=" + Alocalizar.Pais + "&format=json&city=" + Alocalizar.Ciudad + "&state=" + Alocalizar.Provincia; var client = new RestClient(url); client.Timeout = -1; var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request); JArray jsonArray = JArray.Parse(response.Content); var data = JObject.Parse(jsonArray[0].ToString()); Alocalizar.lat = data["lat"].ToString(); Alocalizar.lon = data["lon"].ToString(); if (Alocalizar.lon != "" && Alocalizar.lat != "") { await EnviarCola(Alocalizar); } return(Alocalizar); } catch (Exception ex) { ex.ToString(); return(null); } }
static void Main(string[] args) { String cola = "Cola_Andreani2"; //parametros necesarios para rabbit var factory = new ConnectionFactory { HostName = "rabbitmq", UserName = "******", Password = "******" }; try { //establece la conexion using (var _connection = factory.CreateConnection()) { using (var _channel = _connection.CreateModel()) { _channel.QueueDeclare(queue: cola, durable: false, exclusive: false, autoDelete: false, arguments: null); var consumer = new EventingBasicConsumer(_channel); Console.WriteLine("Escuchando"); var content = ""; consumer.Received += async(ch, ea) => { var body = ea.Body.ToArray(); //cuerpo del mensaje content = Encoding.UTF8.GetString(body); // contenido Console.WriteLine("recibido: {0}" + content); Thread.Sleep(2 * 1000); Localizacion localizar = new Localizacion(); RequestCoordenada rq = new RequestCoordenada(); await rq.GetCordenadaAsync(content); Thread.Sleep(2 * 1000); _channel.BasicAck(ea.DeliveryTag, false); }; _channel.BasicConsume(queue: cola, autoAck: true, consumer: consumer); Console.WriteLine("[enter]" + "para salir"); Console.ReadLine(); } } } catch (Exception ex) { Console.WriteLine("Error" + ex.Message.ToString()); } }
public async Task <Boolean> EnviarCola(Localizacion localizacion) { bool response = false; var factory = new ConnectionFactory() { HostName = "rabbitmq", UserName = "******", Password = "******" }; using (var connection = factory.CreateConnection()) { using (var channel = connection.CreateModel()) { channel.QueueDeclare(queue: "Cola_Andreani3", durable: false, exclusive: false, autoDelete: false, arguments: null); var json = JsonConvert.SerializeObject(localizacion); var body = Encoding.UTF8.GetBytes(json); channel.BasicPublish(exchange: "", routingKey: "Cola_Andreani3", basicProperties: null, body: body); response = true; } } return(response); }