예제 #1
0
        //Metodo para la llamada del servicio de ubicacion de las unidades del metrobus.
        public static async void ObtenDatosMetrobus()
        {
            try
            {
                //se inicializa el hhtpclient
                using (var client = new HttpClient())
                {
                    // Se asignan los valores al Cliente http
                    client.BaseAddress = new Uri(APIUrl);
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    //Se hace la llamada al API de ubicaciones de unidades
                    var response = client.GetAsync(APIUrl).Result;

                    //Si la respuesta es exitosa entra
                    if (response.IsSuccessStatusCode)
                    {
                        var readTask    = response.Content.ReadAsStringAsync().ConfigureAwait(false);
                        var rawResponse = readTask.GetAwaiter().GetResult();

                        //Deserializamos el Json que regresa el API a nuestra clase creada. (ClassMetrobus)
                        records = JsonSerializer.Deserialize <ClassMetrobus>(rawResponse);
                    }
                }
                Console.WriteLine("Obtiene datos del servicio de unidades");
            }
            catch (Exception ex)
            {
                var Error = ex.Message;
            }
        }
        public static void InsertaRegistrosMetrobus(ClassMetrobus classMetrobus)
        {
            //Se crea la conexión a la base de datos
            NpgsqlConnection conn = creaConexion();

            //Abrimos la conexión
            conn.Open();
            try
            {
                //Se guardaran en la Base de Datos cada uno de los registros enviados de la ubicacion de las unidades.
                foreach (Records item in classMetrobus.records)
                {
                    try
                    {
                        //Se crea el insert en base a los datos del registro.
                        string query = @"insert into records (record_id, record_alcaldia_id, vehicle_id, trip_start_date, date_updated, position_longitude, trip_schedule_relationship,
                                                    position_speed, position_latitude, trip_route_id, vehicle_label, position_odometer, trip_id, vehicle_current_status, record_timestamp)
                                 values('" + item.recordid + "', '" + item.fields.AlcalciaId + "', '" + item.fields.vehicle_id + "', '" + item.fields.trip_start_date + "', '" + item.fields.date_updated + "', " + item.fields.position_longitude + ", " + item.fields.trip_schedule_relationship + ","
                                       + item.fields.position_speed + "," + item.fields.position_latitude + ",'" + item.fields.trip_route_id + "', '" + item.fields.vehicle_label + "', " + item.fields.position_odometer + ", '" + item.fields.trip_id + "'," + item.fields.vehicle_current_status + ", '" + item.record_timestamp.ToString() + "')";

                        //instanciamos el comando y asiganmos la conexión
                        NpgsqlCommand cmd = new NpgsqlCommand(query, conn);

                        //Ejecutamos el comando
                        cmd.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    { var error = ex.Message; }
                }
                Console.WriteLine("Inserta Datos en la Base");
            }
            finally
            {
                conn.Close();
            }
        }