Exemple #1
0
        private static void InsertaIndividual(string UsuarioReC, Tran res)
        {
            try
            {
                string imei         = res.T2060.equipment.unitAddress.ToString();
                string codigoevento = "";

                string lat = res.T2060.position.lat;
                string lng = res.T2060.position.lon;
                //string evento = res[i].status.ToString();
                string odometro = "0";
                ////string placas = ((dynamic)res[i]).Plates;
                string velocidad = "0";
                string bateria   = "100";
                string direccion = "0";
                //2017 / 07 / 07 20:37:06
                //DateTime fechahoragps = DateTime.ParseExact(res[i].T2060.position.posTS);
                var fechahoragps = DateTime.ParseExact(res.T2060.position.posTS, "yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture);
                fechahoragps = fechahoragps.ToUniversalTime();
                ////Validaciones

                //////Conversiones de datos
                var LAT      = decimal.Parse(lat);
                var LNG      = decimal.Parse(lng);
                var ODOMETRO = int.Parse(odometro);
                ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                var VELOCIDAD = int.Parse(velocidad);
                var DIRECCION = int.Parse(direccion);
                var BATERIA   = int.Parse(bateria);


                //Si no es repetida la inserta
                List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                WS_CONTEXT db = new WS_CONTEXT();

                WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                if (WS_GPS_InsertaSimple[0].Indicador == 1)
                {
                }
                else
                {
                    log.Error("Error al Insertar evento de " + UsuarioReC + ". " + " IMEI: " + imei + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". ");
                }
            }
            catch (Exception Ex3)
            {
                log.Error("Error al Insertar evento de " + UsuarioReC + ". " + Ex3.Message + ". ");
            }
        }
Exemple #2
0
        public static async void SolucionesGloblaes_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            //{"id":3198,"name":"PETERBILT 002","car_image_id":5,"current_temperature":null,"latitude":26.186633,"longitude":-97.968189,"engine_status":"off","last_event_type":"position","battery":null,"speed":0,"plates":null,"mileage":172395.3,"orientation":269,"licence_id":null,"geocoded_area":[{"id":63031992,"lat":26.186633,"long":-97.968189,"city":"Weslaco","street":"2611 Vo Tech Drive","reference":"Weslaco, TX, USA","distance":3.76796770975726,"created_at":"2017-11-13T23:55:48.085Z","updated_at":"2017-11-13T23:55:48.085Z","device_id":0}],"last_update":"2017-11-13T23:40:01.034Z"}

            var responseJson = "";

            try
            {
                if (Token == null || Token == "")
                {
                    SolucionesGloblaes_ObtenerToken(Usuario, Password);
                    //return;
                }

                using (var client = new HttpClient())
                {
                    //setup client
                    client.BaseAddress = new Uri("http://162.243.146.161");
                    client.DefaultRequestHeaders.Accept.Clear();


                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Token);

                    //send request
                    HttpResponseMessage responseMessage = await client.GetAsync("/api/v2/map/");

                    //get access token from response body
                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    var res = JsonConvert.DeserializeObject <RootObject>(responseJson);

                    var result = res.values.groupless;

                    for (int i = 0; i < result.Count; i++)
                    {
                        //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                        string imei         = result[i].id.ToString();
                        string codigoevento = "1";

                        string lat = result[i].latitude.ToString();
                        string lng = result[i].longitude.ToString();
                        //string evento = result[i].status.ToString();
                        string odometro = "0";
                        ////string placas = ((dynamic)res[i]).Plates;
                        string velocidad = result[i].speed.ToString();
                        string bateria   = result[i].battery == null ? "0" : result[i].battery.ToString();
                        //string bateria = result.vehicle_states[i].Aux_Battery == null ? "0" : result.vehicle_states[i].Aux_Battery.ToString();
                        string direccion = result[i].orientation.ToString();

                        var fechahoragps = DateTime.ParseExact(result[i].last_update.ToString("dd-MM-yyyy HH:mm:ss"), "dd-MM-yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                        fechahoragps = fechahoragps.ToUniversalTime();
                        ////Validaciones

                        //////Conversiones de datos
                        var LAT      = decimal.Parse(lat);
                        var LNG      = decimal.Parse(lng);
                        var ODOMETRO = int.Parse(odometro);
                        ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(velocidad);
                        var DIRECCION = int.Parse(direccion);
                        var BATERIA   = int.Parse(bateria);


                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". " + responseJson);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error RedGPS_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #3
0
        public static async void Seinext_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            //Ejemplo
            //{ "xml":{ "version":"1.0","encoding":"iso-8859-1"},"otros":{ "equipo":[{"neconomicov":"AVEN-LB-47-866","unitidv":"954018","latitudv":"19.708854","longitudv":"-099.208836","velocidadv":"0","direccionv":"000� (Norte)","gasolinav":"ND","ubicacionv":"HUEHUETOCA;M�XICO;MEXICO","poiv":"","fechahorag":"11/13/2017 20:20","fechahorav":"11/13/2017 20:19","mensajev":"AUTOREPORTE POR TIEMPO (IGN OFF)","temperaturav":"ND"},{"neconomicov":"AVEN-MYK-97-07","unitidv":"012642000528039","latitudv":"19.349863","longitudv":"-99.12103","velocidadv":"0","direccionv":"0� (Norte)","gasolinav":"0","ubicacionv":"PASEO DEL RIO;PASEOS DE TAXQUE�A;COYOACAN;DISTRITO FEDERAL;MEXICO","poiv":"","fechahorag":"11/13/2017 20:20","fechahorav":"11/13/2017 20:20","mensajev":"AUTOREPORTE POR TIEMPO","temperaturav":"ND"}]}}

            var responseJson = "";

            try
            {
                using (var client = new HttpClient())
                {
                    //setup client
                    client.BaseAddress = new Uri("http://p22gateway.dyndns.org");
                    client.DefaultRequestHeaders.Accept.Clear();

                    var formContent = new FormUrlEncodedContent(new[]
                    {
                        //new KeyValuePair<string, string>("grant_type", "password"),
                        new KeyValuePair <string, string>("USUARIO", Usuario),
                        new KeyValuePair <string, string>("PASSWORD", Password)
                    });

                    //send request
                    HttpResponseMessage responseMessage = await client.PostAsync("/webservices/seinext/unidades2.asp", formContent);

                    //HttpResponseMessage responseMessage = await client.PostAsync("/web%20services/ws_last_position/ws_last_position.asmx/GetLastPosition_02?User="******"&Password="******"&Page=", formContent);

                    //XML Response
                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    //-----
                    System.Xml.XmlDocument doc2 = new System.Xml.XmlDocument();
                    doc2.LoadXml(responseJson);
                    string json2 = JsonConvert.SerializeXmlNode(doc2);

                    json2 = System.Text.RegularExpressions.Regex.Replace(json2, "string", "Dataset");
                    json2 = json2.Replace("?", "");
                    json2 = json2.Replace("#", "");
                    json2 = System.Text.RegularExpressions.Regex.Replace(json2, "@", "");

                    //un elemento
                    //json2 = "{\"xml\":{\"version\":\"1.0\",\"encoding\":\"iso-8859-1\"},\"otros\":{\"equipo\":{\"neconomicov\":\"AVEN-853-DF-1\",\"unitidv\":\"954016\",\"latitudv\":\"19.434205\",\"longitudv\":\"-099.103728\",\"velocidadv\":\"0\",\"direccionv\":\"000� (Norte)\",\"gasolinav\":\"ND\",\"ubicacionv\":\"DE LA INDUSTRIA AV;MOCTEZUMA 2A SECCION;VENUSTIANO CARRANZA;DISTRITO FEDERAL;MEXICO\",\"poiv\":\"\",\"fechahorag\":\"11/13/2017 19:47\",\"fechahorav\":\"11/13/2017 19:47\",\"mensajev\":\"AUTOREPORTE POR TIEMPO (IGN OFF)\",\"temperaturav\":\"ND\"}}}";

                    //dos elementos
                    //json2 = "{\"xml\":{\"version\":\"1.0\",\"encoding\":\"iso-8859-1\"},\"otros\":{\"equipo\":[{\"neconomicov\":\"AVEN-LB-47-866\",\"unitidv\":\"954018\",\"latitudv\":\"19.708975\",\"longitudv\":\"-099.208777\",\"velocidadv\":\"0\",\"direccionv\":\"000� (Norte)\",\"gasolinav\":\"ND\",\"ubicacionv\":\"HUEHUETOCA;M�XICO;MEXICO\",\"poiv\":\"\",\"fechahorag\":\"11/13/2017 19:50\",\"fechahorav\":\"11/13/2017 19:50\",\"mensajev\":\"AUTOREPORTE POR TIEMPO (IGN OFF)\",\"temperaturav\":\"ND\"},{\"neconomicov\":\"AVEN-MYK-97-07\",\"unitidv\":\"012642000528039\",\"latitudv\":\"19.349886\",\"longitudv\":\"-99.12112\",\"velocidadv\":\"0\",\"direccionv\":\"0� (Norte)\",\"gasolinav\":\"0\",\"ubicacionv\":\"PASEO DEL RIO;PASEOS DE TAXQUE�A;COYOACAN;DISTRITO FEDERAL;MEXICO\",\"poiv\":\"\",\"fechahorag\":\"11/13/2017 19:50\",\"fechahorav\":\"11/13/2017 19:50\",\"mensajev\":\"AUTOREPORTE POR TIEMPO\",\"temperaturav\":\"ND\"}]}}";

                    //sin elementos
                    //json2 = "{\"xml\":{\"version\":\"1.0\",\"encoding\":\"iso-8859-1\"},\"otros\":\"\"}";


                    try
                    {
                        var result = JsonConvert.DeserializeObject <RootObject>(json2);
                        if (result.otros == null)
                        {
                            return;
                        }
                        var res = result.otros.equipo;

                        for (int i = 0; i < res.Count; i++)
                        {
                            //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                            string imei         = res[i].unitidv.ToString();
                            string codigoevento = "";

                            string lat = res[i].latitudv.ToString();
                            string lng = res[i].longitudv.ToString();

                            string odometro = "0";
                            ////string placas = ((dynamic)res[i]).Plates;
                            string velocidad = res[i].velocidadv.ToString().Split('.')[0];
                            string bateria   = "0";
                            string direccion = res[i].direccionv.ToString();
                            direccion = System.Text.RegularExpressions.Regex.Replace(direccion, "[^0-9]+", "");

                            //2017 / 07 / 07 20:37:06
                            var fechahoragps = DateTime.ParseExact(res[i].fechahorag, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);
                            fechahoragps = fechahoragps.ToUniversalTime();
                            var fechahoraserver = DateTime.ParseExact(res[i].fechahorav, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);
                            fechahoraserver = fechahoraserver.ToUniversalTime();
                            ////Validaciones

                            //////Conversiones de datos
                            var LAT      = decimal.Parse(lat);
                            var LNG      = decimal.Parse(lng);
                            var ODOMETRO = int.Parse(odometro);
                            ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                            ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                            var VELOCIDAD = int.Parse(velocidad);
                            var DIRECCION = int.Parse(direccion);
                            var BATERIA   = int.Parse(bateria);

                            //Si no es repetida la inserta
                            List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                            WS_CONTEXT db = new WS_CONTEXT();

                            WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoraserver).ToList();
                            if (WS_GPS_InsertaSimple[0].Indicador == 1)
                            {
                            }
                            else
                            {
                                log.Error("Error al Insertar evento de " + UsuarioReC + ". " + " IMEI: " + imei + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". ");
                            }
                        }
                    }
                    catch
                    {
                        var result = JsonConvert.DeserializeObject <RootObject2>(json2);

                        if (result.otros.equipo == null)
                        {
                            return;
                        }
                        var res = result.otros.equipo;

                        //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                        string imei         = res.unitidv.ToString();
                        string codigoevento = "";

                        string lat = res.latitudv.ToString();
                        string lng = res.longitudv.ToString();

                        string odometro = "0";
                        ////string placas = ((dynamic)res[i]).Plates;
                        string velocidad = res.velocidadv.ToString().Split('.')[0];
                        string bateria   = "0";
                        string direccion = res.direccionv.ToString();
                        direccion = System.Text.RegularExpressions.Regex.Replace(direccion, "[^0-9]+", "");

                        //2017 / 07 / 07 20:37:06
                        var fechahoragps = DateTime.ParseExact(res.fechahorag, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);
                        fechahoragps = fechahoragps.ToUniversalTime();
                        var fechahoraserver = DateTime.ParseExact(res.fechahorav, "MM/dd/yyyy HH:mm", CultureInfo.InvariantCulture);
                        fechahoraserver = fechahoraserver.ToUniversalTime();
                        ////Validaciones

                        //////Conversiones de datos
                        var LAT      = decimal.Parse(lat);
                        var LNG      = decimal.Parse(lng);
                        var ODOMETRO = int.Parse(odometro);
                        ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(velocidad);
                        var DIRECCION = int.Parse(direccion);
                        var BATERIA   = int.Parse(bateria);

                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoraserver).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + " IMEI: " + imei + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". ");
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error RedGPS_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #4
0
        public static void SGIT_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            var responseJson = "";

            try
            {
                string sPath = "";
                sPath = System.Web.Hosting.HostingEnvironment.MapPath("~/" + "SOAPENV\\SOAPENV_ISLAS.txt");

                //XmlDocument doc = new XmlDocument();
                //doc.Load(@"\test_ws.txt");
                //string xmlcontents = doc.InnerXml;
                string xmlcontents = File.ReadAllText(sPath);

                xmlcontents = xmlcontents.Replace("[-pwd-]", Password);
                xmlcontents = xmlcontents.Replace("[-user-]", Usuario);



                HttpWebRequest request         = CreateWebRequest();
                XmlDocument    soapEnvelopeXml = new XmlDocument();
                soapEnvelopeXml.LoadXml(xmlcontents);

                using (Stream stream = request.GetRequestStream())
                {
                    soapEnvelopeXml.Save(stream);
                }


                using (WebResponse response = request.GetResponse())
                {
                    using (StreamReader rd = new StreamReader(response.GetResponseStream()))
                    {
                        string soapResult = rd.ReadToEnd();

                        ////FORMA 1 DE DESERIALIZAR
                        //XmlDocument document = new XmlDocument();
                        //document.LoadXml(soapResult);
                        //System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(Envelope));
                        //Envelope envelope = (Envelope)serializer.Deserialize(new StringReader(document.InnerXml));


                        var rawXML = XDocument.Parse(soapResult);

                        var returnResult = (from r in rawXML.Descendants("item") select r).ToList();

                        foreach (XElement xElement in returnResult)
                        {
                            var returnResult2 = (from r2 in xElement.Descendants("item") select r2).ToList();
                            if (returnResult2.Count == 0)
                            {
                                continue;
                            }
                            string id = "0", lat = "0", lng = "0", codigoevento = "", odometro = "0", velocidad = "0", bateria = "0", fechahoragps = "", direccion = "0", placas = "", Gps = "";

                            foreach (XElement xElement2 in returnResult2)
                            {
                                var key = xElement2.Element("key") != null?xElement2.Element("key").Value : "";

                                var value = xElement2.Element("value") != null?xElement2.Element("value").Value : "";

                                if (key == "Id")
                                {
                                    id = value.ToString();
                                }
                                else if (key == "Latitud")
                                {
                                    lat = value.ToString();
                                }
                                else if (key == "Longitud")
                                {
                                    lng = value.ToString();
                                }
                                else if (key == "Odometro")
                                {
                                    odometro = value.ToString().Split('.')[0];;
                                }
                                else if (key == "Velocidad")
                                {
                                    velocidad = value.ToString().Split('.')[0];;
                                }
                                //else if (key == "Curso")
                                //{
                                //    direccion = value.ToString().Split('.')[0]; ;
                                //}
                                else if (key == "Fecha")
                                {
                                    fechahoragps = value.ToString();
                                }
                                else if (key == "Placas")
                                {
                                    placas = System.Text.RegularExpressions.Regex.Replace(value.ToString(), "[^a-zA-Z0-9]", "");
                                }
                                else if (key == "Gps")
                                {
                                    Gps = value.ToString();
                                }
                            }


                            try
                            {
                                DateTime FechaHoraGPS = DateTime.Today;
                                if (fechahoragps.Length > 0)
                                {
                                    FechaHoraGPS = DateTime.ParseExact(fechahoragps, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                                    FechaHoraGPS = FechaHoraGPS.ToUniversalTime();
                                }
                                else
                                {
                                    log.Error("Error SGIT_ObtenerPosicion: " + UsuarioReC + ". " + placas + ". " + "La fechahoragps es incorrecta");
                                    continue;
                                }

                                //////Conversiones de datos
                                var LAT      = decimal.Parse(lat);
                                var LNG      = decimal.Parse(lng);
                                var ODOMETRO = int.Parse(odometro);
                                ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                                ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                                var VELOCIDAD = int.Parse(velocidad);
                                var DIRECCION = int.Parse(direccion);
                                var BATERIA   = int.Parse(bateria);


                                //Si no es repetida la inserta
                                List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                                WS_CONTEXT db = new WS_CONTEXT();

                                WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, placas, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, FechaHoraGPS, FechaHoraGPS).ToList();
                                if (WS_GPS_InsertaSimple[0].Indicador == 1)
                                {
                                }
                                else
                                {
                                    log.Error("Error al Insertar evento de " + UsuarioReC + ". IMEI: " + (placas != null ? placas : "").ToString() + "  -  " + WS_GPS_InsertaSimple[0].Mensaje + ". " + responseJson);
                                }
                            }
                            catch (Exception Ex)
                            {
                                log.Error("Error SGIT_ObtenerPosicion: " + UsuarioReC + ". " + xElement.ToString() + ". " + Ex.Message);
                            }
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error GrupoUDA_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #5
0
        public static async void GpsTotal_ObtenerPosicion(string UsuarioReC, string Password)
        {
            var       IMEIenCurso = "";
            DataTable DT_Data     = new DataTable();

            try
            {
                //Carga los IMEI que se van a consultar
                DT_Data = GetData_ListaGPSxProveedor("ETI");
                if (DT_Data.Rows.Count == 0)
                {
                    return;
                }

                for (int i = 0; i < DT_Data.Rows.Count; i++)
                {
                    IMEIenCurso = DT_Data.Rows[i]["IMEI"].ToString();

                    var responseJson = "";
                    try
                    {
                        using (var client = new HttpClient())
                        {
                            //setup client
                            client.BaseAddress = new Uri("http://web.gpstotal.com.mx");
                            //client.DefaultRequestHeaders.Add("SOAPAction", "http://foo.com/GetVersion")
                            client.DefaultRequestHeaders.Accept.Clear();

                            //setup login data
                            var formContent = new FormUrlEncodedContent(new[]
                            {
                                new KeyValuePair <string, string>("SecurityToken", Password),
                                new KeyValuePair <string, string>("IMEI", IMEIenCurso)
                            });

                            //send request
                            HttpResponseMessage responseMessage = await client.PostAsync("/WS/WSTrack2.asmx/GetCurrentPositionByIMEIWithAddressAndEvent", formContent);

                            //HttpResponseMessage responseMessage = await client.PostAsync("/web%20services/ws_last_position/ws_last_position.asmx/GetLastPosition_02?User="******"&Password="******"&Page=", formContent);

                            //get access token from response body
                            responseJson = await responseMessage.Content.ReadAsStringAsync();


                            responseJson = System.Text.RegularExpressions.Regex.Replace(responseJson, "&lt;", "<");
                            responseJson = System.Text.RegularExpressions.Regex.Replace(responseJson, "&gt;", ">");

                            System.Xml.XmlDocument doc2 = new System.Xml.XmlDocument();
                            doc2.LoadXml(responseJson);
                            string json2 = JsonConvert.SerializeXmlNode(doc2);

                            json2 = System.Text.RegularExpressions.Regex.Replace(json2, "string", "Dataset");
                            json2 = json2.Replace("?", "");
                            json2 = json2.Replace("#", "");
                            json2 = System.Text.RegularExpressions.Regex.Replace(json2, "@", "");

                            //json2 = json2.Replace("\"Plate\":[", "\"Units\":[");
                            //json2 = json2.Replace("cdata-section", "cdatasection");
                            var result = JsonConvert.DeserializeObject <RootObject>(json2);
                            //var res = result.dataset.NewDataSet.Table;


                            var res = result.Dataset.NewDataSet.Table;
                            //---

                            string imei         = IMEIenCurso;
                            string codigoevento = "";

                            string lat = res.Lat.ToString();
                            string lng = res.Lon.ToString();
                            //string evento = res[i].status.ToString();
                            string odometro = res.Odometer.ToString().Split('.')[0];
                            ////string placas = ((dynamic)res[i]).Plates;
                            string velocidad = res.Speed.ToString().Split('.')[0];
                            string bateria   = "0";
                            string direccion = res.Direction.ToString().Split('.')[0];
                            //2017 / 07 / 07 20:37:06

                            var fechahoragps = DateTime.ParseExact(res.ActualDateUTC, "yyyy-MM-ddTHH:mm:ss:fffZ", CultureInfo.InvariantCulture);;
                            fechahoragps = fechahoragps.ToUniversalTime();

                            //fechahoragps = fechahoragps.ToUniversalTime();

                            var fechahoraserver = res.ActualDateUTC;
                            //fechahoraserver = fechahoraserver.ToUniversalTime();
                            ////Validaciones

                            //////Conversiones de datos

                            var LAT      = decimal.Parse(lat);
                            var LNG      = decimal.Parse(lng);
                            var ODOMETRO = int.Parse(odometro);
                            ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                            ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                            var VELOCIDAD = int.Parse(velocidad);
                            var DIRECCION = int.Parse(direccion);
                            var BATERIA   = int.Parse(bateria);


                            //Si no es repetida la inserta
                            List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                            WS_CONTEXT db = new WS_CONTEXT();

                            WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                            if (WS_GPS_InsertaSimple[0].Indicador == 1)
                            {
                            }
                            else
                            {
                                log.Error("Error al Insertar evento de " + UsuarioReC + ". " + " IMEI: " + IMEIenCurso + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". ");
                            }
                            //}
                        }
                    }
                    catch (Exception Ex)
                    {
                        if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                        {
                            //No guarda nada en el log por que aveces no viene completa la trama
                        }
                        else
                        {
                            log.Error("Error GrupoUDA_ObtenerPosicion: " + UsuarioReC + ". " + IMEIenCurso + ". " + Ex.Message);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error GrupoGCP_ObtenerPosicion: " + UsuarioReC + ". " + Ex.Message);
                }
            }
        }
Exemple #6
0
        public static async void QUIALA_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            var responseJson = "";

            try
            {
                using (var client = new HttpClient())
                {
                    //setup client.
                    client.BaseAddress = new Uri("http://www.rastreo.blac.com.mx");
                    client.DefaultRequestHeaders.Accept.Clear();
                    //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    //setup login data
                    var formContent = new FormUrlEncodedContent(new[]
                    {
                        //new KeyValuePair<string, string>("grant_type", "password"),
                        new KeyValuePair <string, string>("username", Usuario),
                        new KeyValuePair <string, string>("password", Password)
                    });

                    //send request
                    HttpResponseMessage responseMessage = await client.PostAsync("/WS/WSTrack2.asmx/GetVehiclesInformationBlacSolutions", formContent);

                    //HttpResponseMessage responseMessage = await client.PostAsync("/web%20services/ws_last_position/ws_last_position.asmx/GetLastPosition_02?User="******"&Password="******"&Page=", formContent);

                    //get access token from response body
                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    responseJson = System.Text.RegularExpressions.Regex.Replace(responseJson, "&lt;", "<");
                    responseJson = System.Text.RegularExpressions.Regex.Replace(responseJson, "&gt;", ">");

                    System.Xml.XmlDocument doc2 = new System.Xml.XmlDocument();
                    doc2.LoadXml(responseJson);
                    string json2 = JsonConvert.SerializeXmlNode(doc2);

                    json2 = System.Text.RegularExpressions.Regex.Replace(json2, "string", "Dataset");
                    json2 = json2.Replace("?", "");
                    json2 = System.Text.RegularExpressions.Regex.Replace(json2, "@", "");


                    var result = JsonConvert.DeserializeObject <ObjectResult>(json2);
                    var res    = result.dataset.NewDataSet.Table;

                    for (int i = 0; i < res.Count; i++)
                    {
                        try
                        {
                            //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                            string imei         = res[i].IMEI.ToString();
                            string codigoevento = res[i].EventCode == null ? "" : res[i].EventCode.ToString();

                            string lat = res[i].Lat.ToString();
                            string lng = res[i].Lon.ToString();
                            //string evento = res[i].status.ToString();
                            string odometro = "0";
                            ////string placas = ((dynamic)res[i]).Plates;
                            string velocidad = res[i].Speed.ToString().Split('.')[0];
                            string bateria   = "0";
                            string direccion = "0";

                            DateTime fechahoragps = res[i].Date.ToUniversalTime();

                            ////Validaciones

                            //////Conversiones de datos
                            var LAT      = decimal.Parse(lat);
                            var LNG      = decimal.Parse(lng);
                            var ODOMETRO = int.Parse(odometro);
                            ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                            ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                            var VELOCIDAD = int.Parse(velocidad);
                            var DIRECCION = int.Parse(direccion);
                            var BATERIA   = int.Parse(bateria);


                            //Si no es repetida la inserta
                            List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                            WS_CONTEXT db = new WS_CONTEXT();

                            WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                            if (WS_GPS_InsertaSimple[0].Indicador == 1)
                            {
                            }
                            else
                            {
                                log.Error("Error al Insertar evento de " + UsuarioReC + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". " + res[i].IMEI.ToString());
                            }
                        }
                        catch (Exception Ex)
                        {
                            log.Error("Error al obtener e Insertar evento de: " + UsuarioReC + ". " + res[i].IMEI.ToString() + ". " + Ex.Message);
                            continue;
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error QUIALA_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #7
0
        public static async void Cybermapa_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            var responseJson = "";

            try
            {
                using (var client = new HttpClient())
                {
                    //setup client
                    client.BaseAddress = new Uri("http://cloud13.cybermapa.com");
                    client.DefaultRequestHeaders.Accept.Clear();

                    var Content = new StringContent("{\"user\":\"" + Usuario + "\",\"pwd\":\"" + Password + "\",\"action\":\"DATOSACTUALES\"}", System.Text.Encoding.UTF8, "application/json");

                    //send request
                    HttpResponseMessage responseMessage = await client.PostAsync("/ws/ws.js", Content);

                    //get access token from response body
                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    var result = JsonConvert.DeserializeObject <List <ObjectResult> >(responseJson);

                    for (int i = 0; i < result.Count; i++)
                    {
                        var imei = "";
                        try
                        {
                            //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                            imei = result[i].gps.ToString();
                            string codigoevento = result[i].evento.ToString();

                            string lat = result[i].latitud.ToString();
                            string lng = result[i].longitud.ToString();
                            //string evento = result[i].status.ToString();
                            string odometro = "0";
                            ////string placas = ((dynamic)res[i]).Plates;
                            string velocidad = result[i].velocidad.ToString();
                            string bateria   = "100";
                            string direccion = result[i].sentido.ToString().Split('.')[0];

                            var fechahoragps = DateTime.ParseExact(result[i].fecha, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
                            fechahoragps = fechahoragps.ToUniversalTime();
                            ////Validaciones

                            //////Conversiones de datos
                            var LAT      = decimal.Parse(lat);
                            var LNG      = decimal.Parse(lng);
                            var ODOMETRO = int.Parse(odometro);
                            ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                            ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                            var VELOCIDAD = int.Parse(velocidad);
                            var DIRECCION = int.Parse(direccion);
                            var BATERIA   = int.Parse(bateria);


                            //Si no es repetida la inserta
                            List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                            WS_CONTEXT db = new WS_CONTEXT();

                            WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                            if (WS_GPS_InsertaSimple[0].Indicador == 1)
                            {
                            }
                            else
                            {
                                log.Error("Error al Insertar evento de " + UsuarioReC + ". IMEI: " + imei + "  " + WS_GPS_InsertaSimple[0].Mensaje + ". " + responseJson);
                            }
                        }
                        catch (Exception Ex)
                        {
                            log.Error("Error RedGPS_ObtenerPosicion: " + UsuarioReC + ". " + imei + ". " + Ex.Message);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error RedGPS_ObtenerPosicion: " + UsuarioReC + ". " + Ex.Message);
                    //log.Error("Error RedGPS_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #8
0
        public static async void Sama_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            //{"Device":"chrysler_promaster","Device_desc":"T-38","Device_Plate":"NET-29-09","Device_SimNumber":"5578778646","EventData":[{"Device":"chrysler_promaster","Timestamp":1510466301,"Timestamp_date":"2017/11/11","Timestamp_time":"23:58:21","IgnitionStatus":0,"StatusCode":64791,"StatusCode_hex":"0xFD17","StatusCode_desc":"Apagado","GPSPoint":"19.41872,-99.05518","GPSPoint_lat":19.41872,"GPSPoint_lon":-99.05518,"Speed_kph":0,"Speed":0,"Speed_units":"km/h","Address":"Calle 4, Nezahualcóyotl, [Nezahualcóyotl], México, México","Index":0}]}

            var responseJson = "";

            try
            {
                using (var client = new HttpClient())
                {
                    //setup client
                    client.BaseAddress = new Uri("http://149.56.244.50:8080");
                    client.DefaultRequestHeaders.Accept.Clear();

                    //send request
                    HttpResponseMessage responseMessage = await client.GetAsync("/events/data.jsonx?a=trapol&u=" + Usuario + "&p=" + Password + "&g=all&l=1");

                    //get access token from response body
                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    var result = JsonConvert.DeserializeObject <RootObject>(responseJson);

                    var res = result.DeviceList;

                    for (int i = 0; i < res.Count; i++)
                    {
                        if (res[i].Device_Plate == "")
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + " Unidad no tiene asignado valor en el campo placas: " + res[i].Device + " - " + res[i].Device_desc + " - " + res[i].Device_SimNumber);
                            continue;
                        }
                        //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                        string imei         = System.Text.RegularExpressions.Regex.Replace(res[i].Device_Plate, "[^a-zA-Z0-9]", "").ToUpper();//Hecer query imei?  res[].EventData[0]. res[i].hst.Imei.cdatasection.ToString();
                        string codigoevento = res[i].EventData[0].StatusCode.ToString();

                        string lat = res[i].EventData[0].GPSPoint_lat.ToString();
                        string lng = res[i].EventData[0].GPSPoint_lon.ToString();
                        //string evento = res[i].status.ToString();
                        string odometro = res[i].EventData[0].Odometer.ToString().Split('.')[0];
                        ////string placas = ((dynamic)res[i]).Plates;
                        string velocidad = res[i].EventData[0].Speed.ToString().Split('.')[0];
                        string bateria   = "0";
                        string direccion = res[i].EventData[0].Heading.ToString().Split('.')[0];
                        //2017 / 07 / 07 20:37:06
                        var fechahoragps = DateTime.ParseExact(res[i].EventData[0].Timestamp_date + " " + res[i].EventData[0].Timestamp_time, "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture);
                        fechahoragps = fechahoragps.ToUniversalTime();
                        var fechahoraserver = DateTime.ParseExact(res[i].EventData[0].Timestamp_date + " " + res[i].EventData[0].Timestamp_time, "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture);
                        fechahoraserver = fechahoraserver.ToUniversalTime();
                        ////Validaciones

                        //////Conversiones de datos
                        var LAT      = decimal.Parse(lat);
                        var LNG      = decimal.Parse(lng);
                        var ODOMETRO = int.Parse(odometro);
                        ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(velocidad);
                        var DIRECCION = int.Parse(direccion);
                        var BATERIA   = int.Parse(bateria);


                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoraserver).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + " IMEI: " + res[i].Device_Plate + " - " + res[i].Device + " - " + res[i].Device_desc + " - " + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". ");
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error GrupoUDA_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #9
0
        public static async void VECTRO_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            var responseJson = "";

            try
            {
                using (var client = new HttpClient())
                {
                    //setup client
                    client.BaseAddress = new Uri("http://162.248.55.111:8091");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));


                    //send request
                    HttpResponseMessage responseMessage = await client.GetAsync("/panalpina");

                    //HttpResponseMessage responseMessage = await client.PostAsync("/web%20services/ws_last_position/ws_last_position.asmx/GetLastPosition_02?User="******"&Password="******"&Page=", formContent);

                    //get access token from response body
                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    var result = JsonConvert.DeserializeObject <List <ObjectResult> >(responseJson);


                    for (int i = 0; i < result.Count; i++)
                    {
                        try
                        {
                            if (result[i].SERIE == null || result[i].LAT == null || result[i].LON == null)
                            {
                                continue;
                            }

                            string imei         = result[i].SERIE.ToString();
                            string codigoevento = result[i].IN.ToString();

                            string lat = result[i].LAT.ToString().Replace("+", "");
                            string lng = result[i].LON.ToString();
                            //string evento = result[i].status.ToString();
                            string odometro = "0";
                            ////string placas = ((dynamic)res[i]).Plates;
                            string velocidad = result[i].SPD.ToString();
                            string bateria   = result[i].BAT == null ? "0" : result[i].BAT.ToString();
                            string direccion = "0";

                            var fechahoragps = DateTime.ParseExact(result[i].TIMEIN, "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);
                            fechahoragps = fechahoragps.ToUniversalTime();
                            var fechahoraserver = DateTime.ParseExact(result[i].TIMEOUT, "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);
                            fechahoraserver = fechahoraserver.ToUniversalTime();

                            ////Conversiones de datos
                            //codigoevento = codigoevento;
                            //evento = evento;
                            var LAT      = decimal.Parse(lat);
                            var LNG      = decimal.Parse(lng);
                            var ODOMETRO = int.Parse(odometro);
                            //var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                            //PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                            var VELOCIDAD = int.Parse(velocidad);
                            var DIRECCION = int.Parse(direccion);
                            //string[] formats = { "M/dd/yyyy hh:mm:ss tt" };
                            //var dateTime = DateTime.ParseExact(fechahora, formats, new System.Globalization.CultureInfo("en-US"), System.Globalization.DateTimeStyles.None);


                            //Si no es repetida la inserta
                            List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                            WS_CONTEXT db = new WS_CONTEXT();

                            WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, decimal.Parse(lat), decimal.Parse(lng), "", true, int.Parse(velocidad), int.Parse(direccion), 100, int.Parse(odometro), fechahoragps, fechahoraserver).ToList();
                            if (WS_GPS_InsertaSimple[0].Indicador == 1)
                            {
                            }
                            else
                            {
                                var json = JsonConvert.SerializeObject(result[i]);
                                log.Error("Error al Insertar evento de " + UsuarioReC + ". IMEI: " + imei + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". " + result[i]);
                            }
                        }
                        catch (Exception Ex)
                        {
                            log.Error("Error Vectro_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                            continue;
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.InnerException != null && Ex.InnerException.Message == "No es posible conectar con el servidor remoto")
                {
                    //No hay conexion al servidor, a veces se protege de conexiones frecuentes., pero despues si deja conectarse.
                }
                else
                {
                    log.Error("Error Vectro_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #10
0
        public static async void Troncalnet_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            try {
                var responseJson  = "";
                var responseJson2 = "";
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("https://us.mzoneweb.net");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    var byteArray = Encoding.ASCII.GetBytes("coopergdl:c0opergdl");
                    var header    = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
                    client.DefaultRequestHeaders.Authorization = header;

                    var fini = DateTime.Now.AddHours(-5).ToString("yyyyMMddTHHmmss");
                    var ffin = DateTime.Now.ToString("yyyyMMddTHHmmss");

                    HttpResponseMessage responseMessage = await client.GetAsync("/api/v2/vehiclegroups/93121805-644a-4738-85d8-392906a3fc4e/events/" + fini + "/" + ffin + ".json");

                    //Para consultar los economicos con imei hay que pegar esto en el navegador:
                    //https://us.mzoneweb.net/api/v2/vehiclegroups/93121805-644a-4738-85d8-392906a3fc4e/units.json
                    //Cuenta: coopergdl
                    //Contraseña: c0opergdl

                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    var result = JsonConvert.DeserializeObject <Eventos>(responseJson);

                    /////////////////////////////////////////////////////////////////////////////////////////
                    using (var client2 = new HttpClient())
                    {
                        client2.BaseAddress = new Uri("https://us.mzoneweb.net");
                        client2.DefaultRequestHeaders.Accept.Clear();
                        client2.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                        var byteArray2 = Encoding.ASCII.GetBytes("coopergdl:c0opergdl");
                        var header2    = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray2));
                        client2.DefaultRequestHeaders.Authorization = header2;


                        HttpResponseMessage responseMessage2 = await client2.GetAsync("/api/v2/vehiclegroups/93121805-644a-4738-85d8-392906a3fc4e/lastknownpositions.json");

                        //Para consultar los economicos con imei hay que pegar esto en el navegador:
                        //https://us.mzoneweb.net/api/v2/vehiclegroups/93121805-644a-4738-85d8-392906a3fc4e/lastknownpositions.json
                        //Cuenta: coopergdl
                        //Contraseña: c0opergdl

                        responseJson2 = await responseMessage2.Content.ReadAsStringAsync();

                        var result2 = JsonConvert.DeserializeObject <Eventos>(responseJson2);

                        //////// busca por unitid y fechahora para obtener velocidad, odometro y heading
                        for (int i = 0; i < result2.Items.Count; i++) //Result2 es el array con elementos unicos
                        {
                            for (int j = 0; j < result.Items.Count; j++)
                            {
                                if (result.Items[j].UnitId == result2.Items[i].UnitId && result.Items[j].LocalTimestamp == result2.Items[i].LocalTimestamp)
                                {
                                    result2.Items[i].Speed                = result.Items[j].Speed;
                                    result2.Items[i].Odometer             = result.Items[j].Odometer;
                                    result2.Items[i].Direction            = result.Items[j].Direction;
                                    result2.Items[i].EventTypeId          = result.Items[j].EventTypeId;
                                    result2.Items[i].EventTypeDescription = result.Items[j].EventTypeDescription;
                                    break;
                                }
                            }
                        }


                        for (int i = 0; i < result2.Items.Count; i++)
                        {
                            try
                            {
                                string imei         = result2.Items[i].UnitId.ToString();
                                string codigoevento = result2.Items[i].EventTypeId.ToString();
                                string lat          = result2.Items[i].Position[1].ToString();
                                string lng          = result2.Items[i].Position[0].ToString();
                                string odometro     = result2.Items[i].Odometer.ToString().Split('.')[0];
                                string velocidad    = result2.Items[i].Speed.ToString().Split('.')[0];
                                string bateria      = "100";
                                string direccion    = result2.Items[i].Direction.ToString().Split('.')[0];

                                DateTime fechahoragps = result2.Items[i].LocalTimestamp.ToUniversalTime();

                                ////Validaciones

                                ////Conversiones de datos
                                var LAT       = decimal.Parse(lat);
                                var LNG       = decimal.Parse(lng);
                                var ODOMETRO  = int.Parse(odometro);
                                var VELOCIDAD = int.Parse(velocidad);
                                var DIRECCION = int.Parse(direccion);
                                var BATERIA   = int.Parse(bateria);


                                //Si no es repetida la inserta
                                List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                                WS_CONTEXT db = new WS_CONTEXT();

                                WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                                if (WS_GPS_InsertaSimple[0].Indicador == 1)
                                {
                                }
                                else
                                {
                                    log.Error("Error al Insertar evento de " + UsuarioReC + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". " + imei);
                                }
                            }
                            catch (Exception Ex)
                            {
                                log.Error("Error Troncalnet_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                            }
                        }
                    }

                    //for (int i = 0; i < result.Items.Count; i++)
                    //{
                    //}
                }
            }
            catch (Exception Ex)
            {
                log.Error("Error Troncalnet_ObtenerPosicion: " + UsuarioReC + ". " + Ex.Message);
            }
        }
Exemple #11
0
        public static async void GrupoGCP_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            var       responseJson = "";
            var       IMEIenCurso  = "";
            DataTable DT_Data      = new DataTable();

            try
            {
                //Carga los IMEI que se van a consultar
                DT_Data = GetData_ListaGPSxProveedor("Grupo GCP");
                if (DT_Data.Rows.Count == 0)
                {
                    return;
                }
                for (int i = 0; i < DT_Data.Rows.Count; i++)
                {
                    IMEIenCurso = DT_Data.Rows[i]["IMEI"].ToString();
                    using (var client = new HttpClient())
                    {
                        //setup client
                        client.BaseAddress = new Uri("http://gcp2.cechire.com:8081");
                        client.DefaultRequestHeaders.Accept.Clear();
                        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                        //send request
                        HttpResponseMessage responseMessage = await client.GetAsync("/events/data.jsonx?a=gcp2020&p=panalpina&u=panalpina&d=" + IMEIenCurso + "&l=1&at=true");

                        //HttpResponseMessage responseMessage = await client.PostAsync("/web%20services/ws_last_position/ws_last_position.asmx/GetLastPosition_02?User="******"&Password="******"&Page=", formContent);

                        //get access token from response body
                        responseJson = await responseMessage.Content.ReadAsStringAsync();

                        if (responseJson.Contains("Invalid device"))
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + "IMEI: " + IMEIenCurso + ". " + responseJson);
                            continue;
                        }
                        else if (responseJson.Contains("Device(s) not authorized"))
                        {
                            log.Error(UsuarioReC + ". " + "IMEI: " + IMEIenCurso + ". " + "No Autorizado");
                            continue;
                        }

                        var result = JsonConvert.DeserializeObject <ObjectResult>(responseJson);
                        var res    = result.DeviceList[0].EventData[0]; //Esta consulta solo trae un dispositivo a la vez

                        //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                        string imei         = res.Device.Replace("mvt_", "").ToString();
                        string codigoevento = res.StatusCode.ToString() == null ? "" : res.StatusCode.ToString();

                        string lat = res.GPSPoint_lat.ToString();
                        string lng = res.GPSPoint_lon.ToString();
                        //string evento = res.status.ToString();
                        string odometro = res.Odometer.ToString().Split('.')[0];
                        ////string placas = ((dynamic)res).Plates;
                        string velocidad = res.Speed.ToString().Split('.')[0];
                        string bateria   = "100";
                        string direccion = res.Heading.ToString().Split('.')[0];

                        DateTime fechahoragps = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(res.Timestamp);

                        ////Validaciones

                        //////Conversiones de datos
                        var LAT      = decimal.Parse(lat);
                        var LNG      = decimal.Parse(lng);
                        var ODOMETRO = int.Parse(odometro);
                        ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(velocidad);
                        var DIRECCION = int.Parse(direccion);
                        var BATERIA   = int.Parse(bateria);


                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". " + responseJson);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error GrupoGCP_ObtenerPosicion: " + UsuarioReC + ". " + "IMEI: " + IMEIenCurso + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #12
0
        public static async void Rosello_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            var responseJson = "";

            try
            {
                using (var client = new HttpClient())
                {
                    //setup client
                    client.BaseAddress = new Uri("http://207.158.15.160:20999");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));


                    //send request
                    HttpResponseMessage responseMessage = await client.GetAsync("/positionv1/" + Password);

                    //HttpResponseMessage responseMessage = await client.PostAsync("/web%20services/ws_last_position/ws_last_position.asmx/GetLastPosition_02?User="******"&Password="******"&Page=", formContent);

                    //get access token from response body
                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    var res = JsonConvert.DeserializeObject <RootObject>(responseJson);

                    var result = res.position;

                    for (int i = 0; i < result.Count; i++)
                    {
                        try
                        {
                            string imei         = result[i].imei.ToString();
                            string codigoevento = "";

                            string lat = result[i].lat.ToString();
                            string lng = result[i].lng.ToString();
                            //string evento = result[i].status.ToString();
                            string odometro = result[i].odometer.ToString();
                            ////string placas = ((dynamic)res[i]).Plates;
                            string velocidad = result[i].speed.ToString();
                            string bateria   = result[i].battery.ToString();
                            string direccion = result[i].course.ToString();

                            DateTime fechahoragps = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(result[i].gmt);
                            //fechahoragps = fechahoragps.ToUniversalTime();
                            DateTime fechahoraserver = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(result[i].last_rep);
                            //fechahoraserver = fechahoraserver.ToUniversalTime();
                            //DateTime fechahoragps = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(result.items[i].pos.t);

                            ////Conversiones de datos
                            //codigoevento = codigoevento;
                            //evento = evento;
                            var LAT      = decimal.Parse(lat);
                            var LNG      = decimal.Parse(lng);
                            var ODOMETRO = int.Parse(odometro);
                            //var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                            //PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                            var VELOCIDAD = int.Parse(velocidad);
                            var DIRECCION = int.Parse(direccion);
                            var BATERIA   = int.Parse(bateria);
                            //string[] formats = { "M/dd/yyyy hh:mm:ss tt" };
                            //var dateTime = DateTime.ParseExact(fechahora, formats, new System.Globalization.CultureInfo("en-US"), System.Globalization.DateTimeStyles.None);

                            //Si no es repetida la inserta
                            List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                            WS_CONTEXT db = new WS_CONTEXT();

                            WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoraserver).ToList();
                            if (WS_GPS_InsertaSimple[0].Indicador == 1)
                            {
                            }
                            else
                            {
                                var json = JsonConvert.SerializeObject(result[i]);
                                log.Error("Error al Insertar evento de " + UsuarioReC + ". IMEI: " + imei + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". " + result[i]);
                            }
                        }
                        catch (Exception Ex)
                        {
                            log.Error("Error Rosello_ObtenerPosicion: " + UsuarioReC + ". " + Ex.Message);
                            continue;
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                log.Error("Error Rosello_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
            }
        }
Exemple #13
0
        public static void Moving_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            var responseJson = "";

            try
            {
                WS_Moving_Service.DoLoginRequest    loginRequest = new WS_Moving_Service.DoLoginRequest();
                WS_Moving_Service.ServiceSoapClient cliente      = new WS_Moving_Service.ServiceSoapClient();

                loginRequest.UserCredential          = new WS_Moving_Service.UserCredentialInfo();
                loginRequest.UserCredential.UserName = Usuario;
                loginRequest.UserCredential.Password = Password;
                loginRequest.Session = new WS_Moving_Service.SessionInfo();

                WS_Moving_Service.DoLoginResponse loginResponse = null;
                loginResponse = cliente.DoLogin(loginRequest);

                if (loginResponse != null && loginResponse.OperationStatus || loginResponse.Authenticated)
                {
                    WS_Moving_Service.GetVehiclesRequest vehiclesreq = new WS_Moving_Service.GetVehiclesRequest();
                    vehiclesreq.Session   = loginResponse.SecurityProfile.Session;
                    vehiclesreq.IsProfile = false;
                    vehiclesreq.Version   = 0;
                    vehiclesreq.OwnerId   = loginResponse.SecurityProfile.User.OwnerID;

                    var vehicles = cliente.GetVehicles(vehiclesreq);

                    if (vehicles.Vehicles == null || vehicles.Vehicles.Length == 0)
                    {
                        return;  //no hay vehiculos asignados a la cuenta
                    }

                    WS_Moving_Service.GetVehicleSnapShotsRequest snapshotsreq = new WS_Moving_Service.GetVehicleSnapShotsRequest();
                    snapshotsreq.Session = loginResponse.SecurityProfile.Session;
                    snapshotsreq.Version = 0;
                    snapshotsreq.OwnerId = loginResponse.SecurityProfile.User.OwnerID;
                    var snapshots = cliente.GetVehicleSnapShots(snapshotsreq);

                    for (int i = 0; i < vehicles.Vehicles.Length; i++)
                    {
                        var uniquevehicleid = vehicles.Vehicles[i].UniqueVehicleID;
                        var vehicleid       = vehicles.Vehicles[i].VehicleId;
                        var snapshot        = snapshots.SnapShots.Where(x => x.VehicleId == vehicleid).ToList();

                        //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                        string imei         = uniquevehicleid;
                        string codigoevento = snapshot[0].EventSubType != null && snapshot[0].EventSubType.ToString() != "" ? snapshot[0].EventSubType.ToString().Replace("SMDP_EVENT_", "") : "";
                        codigoevento = codigoevento.Substring(0, codigoevento.Length >= 29 ? 29 : codigoevento.Length);

                        string lat = snapshot[0].Latitude.ToString();
                        string lng = snapshot[0].Longitude.ToString();
                        //string evento = res[i].status.ToString();
                        string odometro        = snapshot[0].ODOMeter.ToString().Split('.')[0];
                        string placas          = vehicles.Vehicles[i].Registration;
                        string velocidad       = snapshot[0].Speed.ToString().Split('.')[0];
                        string bateria         = "100";
                        string direccion       = snapshot[0].HDG.ToString().Split('.')[0];
                        var    fechahoragps    = snapshot[0].ActivityDateTime;
                        var    fechahoraserver = snapshot[0].ActivityDateTime;
                        ////Validaciones

                        //////Conversiones de datos
                        var LAT      = decimal.Parse(lat);
                        var LNG      = decimal.Parse(lng);
                        var ODOMETRO = int.Parse(odometro);
                        ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(velocidad);
                        var DIRECCION = int.Parse(direccion);
                        var BATERIA   = int.Parse(bateria);


                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoraserver).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + " IMEI: " + imei + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". ");
                        }
                    }

                    //Cerrar sesion al finalizar:
                    WS_Moving_Service.DoLogoffRequest logoffRequest = new WS_Moving_Service.DoLogoffRequest();
                    logoffRequest.Session = loginResponse.SecurityProfile.Session;
                    WS_Moving_Service.DoLogoffResponse logoffResponse = null;
                    logoffResponse = cliente.DoLogoff(logoffRequest);
                }
                else
                {
                    return;
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error Omnitracs_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #14
0
        public static async void PositionGate_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            DataTable DT_Data = new DataTable();
            var       imei    = "";

            try
            {
                DT_Data = GetData_ListaGPSxProveedor("AFN");

                if (DT_Data.Rows.Count == 0)
                {
                    return;
                }
                for (int i = 0; i < DT_Data.Rows.Count; i++)
                {
                    imei = DT_Data.Rows[i]["IMEI"].ToString();
                    var responseJson = "";

                    try
                    {
                        using (var client = new HttpClient())
                        {
                            //setup client
                            client.BaseAddress = new Uri("http://tracking.positiongate.com");
                            client.DefaultRequestHeaders.Accept.Clear();

                            //send request
                            HttpResponseMessage responseMessage = await client.GetAsync("/api/api.php?api=user&ver=1.0&key=" + Password + "&cmd=OBJECT_GET_LOCATIONS," + imei);

                            //get access token from response body
                            responseJson = await responseMessage.Content.ReadAsStringAsync();

                            responseJson = responseJson.Replace(imei, "GpsIMEI");
                            var result = JsonConvert.DeserializeObject <RootObject>(responseJson);
                            //var result = JsonConvert.DeserializeObject<List<RootObject>>(responseJson);

                            //shift + tab

                            try
                            {
                                var res = result.gpsIMEI;

                                //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                                //var imei = "";
                                string codigoevento = "";

                                string lat = res.lat.ToString();
                                string lng = res.lng.ToString();
                                //string evento = result[i].status.ToString();
                                string odometro = [email protected]().Split('.')[0];
                                ////string placas = ((dynamic)res[i]).Plates;
                                string velocidad = res.speed.ToString();
                                string bateria   = "100";
                                string direccion = res.angle.ToString().Split('.')[0];

                                var fechahoragps = DateTime.ParseExact(res.dt_tracker, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                                fechahoragps = fechahoragps.ToUniversalTime();
                                //ver track jack
                                var fechahoraserver = DateTime.ParseExact(res.dt_server, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                                fechahoraserver = fechahoraserver.ToUniversalTime();

                                ////Validaciones

                                //////Conversiones de datos
                                var LAT      = decimal.Parse(lat);
                                var LNG      = decimal.Parse(lng);
                                var ODOMETRO = int.Parse(odometro);
                                ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                                ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                                var VELOCIDAD = int.Parse(velocidad);
                                var DIRECCION = int.Parse(direccion);
                                var BATERIA   = int.Parse(bateria);


                                //Si no es repetida la inserta
                                List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                                WS_CONTEXT db = new WS_CONTEXT();

                                WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoraserver).ToList();
                                if (WS_GPS_InsertaSimple[0].Indicador == 1)
                                {
                                }
                                else
                                {
                                    log.Error("Error al Insertar evento de " + UsuarioReC + ". IMEI: " + imei + "  " + WS_GPS_InsertaSimple[0].Mensaje + ". ");
                                }
                            }
                            catch (Exception Ex)
                            {
                                log.Error("Error PositionGate_ObtenerPosicion: " + UsuarioReC + ". " + imei + ". " + Ex.Message);
                            }
                        }
                    }
                    catch (Exception Ex)
                    {
                        log.Error("Error PositionGate_ObtenerPosicion: " + UsuarioReC + ". " + Ex.Message);
                    }
                }
            }
            catch (Exception Ex)
            {
                log.Error("Error PositionGate_ObtenerPosicion: " + UsuarioReC + ". " + Ex.Message);
            }
        }
        public static void MonitoreoYRastreo_ObtenerPosicion(string UsuarioReC, string Usuario, string Password, string proveedorGPS)
        {
            var       ECOenCurso = "";
            DataTable DT_Data    = new DataTable();

            try
            {
                //Carga los IMEI que se van a consultar
                DT_Data = GetData_ListaGPSxProveedor(proveedorGPS); //tmp para no modificar demaciado el codigo (x8)
                if (DT_Data.Rows.Count == 0)
                {
                    return;
                }

                for (int i = 0; i < DT_Data.Rows.Count; i++)
                {
                    ECOenCurso = DT_Data.Rows[i]["Economico"].ToString();

                    var responseJson = "";
                    try
                    {
                        string sPath = "";
                        sPath = System.Web.Hosting.HostingEnvironment.MapPath("~/" + "SOAPENV\\SOAPENV_DIEZ.txt");

                        //XmlDocument doc = new XmlDocument();
                        //doc.Load(@"\test_ws.txt");
                        //string xmlcontents = doc.InnerXml;
                        string xmlcontents = File.ReadAllText(sPath);
                        xmlcontents = xmlcontents.Replace("[-placa-]", ECOenCurso);
                        xmlcontents = xmlcontents.Replace("[-pwd-]", Password);
                        xmlcontents = xmlcontents.Replace("[-user-]", Usuario);



                        HttpWebRequest request         = CreateWebRequest();
                        XmlDocument    soapEnvelopeXml = new XmlDocument();
                        soapEnvelopeXml.LoadXml(xmlcontents);

                        using (Stream stream = request.GetRequestStream())
                        {
                            soapEnvelopeXml.Save(stream);
                        }

                        using (WebResponse response = request.GetResponse())
                        {
                            using (StreamReader rd = new StreamReader(response.GetResponseStream()))
                            {
                                string soapResult = rd.ReadToEnd();
                                var    rawXML     = XDocument.Parse(soapResult);

                                var returnResult = (from r in rawXML.Descendants("item") select r).ToList();

                                foreach (XElement xElement in returnResult)
                                {
                                    var Imei = xElement.Element("idgps") != null?xElement.Element("idgps").Value : "";

                                    if (Imei == null || Imei == "")
                                    {
                                        continue;
                                    }
                                    var Respuesta = xElement.Element("Respuesta") != null?xElement.Element("Respuesta").Value : "";

                                    var UnitPlate = xElement.Element("UnitPlate") != null?xElement.Element("UnitPlate").Value : "";

                                    var Latitude = xElement.Element("Latitude") != null?xElement.Element("Latitude").Value : "";

                                    var Longitude = xElement.Element("Longitude") != null?xElement.Element("Longitude").Value : "";

                                    var Odometer = xElement.Element("Odometer") != null?xElement.Element("Odometer").Value : "";

                                    var SpeedGps = xElement.Element("SpeedGps") != null?xElement.Element("SpeedGps").Value : "";

                                    var Course = xElement.Element("Course") != null?xElement.Element("Course").Value : "";

                                    var Ignition = xElement.Element("Ignition") != null?xElement.Element("Ignition").Value : "";

                                    var DateGps = xElement.Element("DateGps") != null?xElement.Element("DateGps").Value : "";

                                    var PanicButton = xElement.Element("PanicButton") != null?xElement.Element("PanicButton").Value : "";



                                    try
                                    {
                                        //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo

                                        //string imei = Imei; //este dato ya viene arriba

                                        string lat          = Latitude;
                                        string lng          = Longitude;
                                        string codigoevento = "";//PanicButton == "true" ? "panic" : "";
                                        string odometro     = Odometer.Split('.')[0];
                                        ////string placas = ((dynamic)res[i]).Plates;
                                        string velocidad = SpeedGps.Split('.')[0];
                                        string bateria   = "100";
                                        string direccion = Course.Split('.')[0];;

                                        var fechahoragps = DateTime.ParseExact(DateGps, "yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture);;
                                        fechahoragps = fechahoragps.ToUniversalTime();

                                        ////Validaciones

                                        //////Conversiones de datos
                                        var LAT      = decimal.Parse(lat);
                                        var LNG      = decimal.Parse(lng);
                                        var ODOMETRO = int.Parse(odometro);
                                        ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                                        ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                                        var VELOCIDAD = int.Parse(velocidad);
                                        var DIRECCION = int.Parse(direccion);
                                        var BATERIA   = int.Parse(bateria);


                                        //Si no es repetida la inserta
                                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                                        WS_CONTEXT db = new WS_CONTEXT();

                                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, Imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                                        {
                                        }
                                        else
                                        {
                                            log.Error("Error al Insertar evento de " + UsuarioReC + ". IMEI: " + (Imei != null ? Imei : "") + ". PLACA: " + (UnitPlate != null ? UnitPlate : "") + "  -  " + WS_GPS_InsertaSimple[0].Mensaje + ". " + responseJson);
                                        }
                                    }
                                    catch (Exception Ex)
                                    {
                                        log.Error("Error MonitoreoYRastreo_ObtenerPosicion: " + UsuarioReC + ". " + xElement.ToString() + ". " + Ex.Message);
                                    }
                                }

                                //FORMA 1 DE DESERIALIZAR
                                //XmlDocument document = new XmlDocument();
                                //document.LoadXml(soapResult);
                                //System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(SOAPClass.Envelope));
                                //SOAPClass.Envelope envelope = (SOAPClass.Envelope)serializer.Deserialize(new StringReader(document.OuterXml));


                                //FORMA 2 DE DESERIALIZAR
                                //SOAPClass.Envelope deserializedObject;
                                //using (var reader = rawXML.CreateReader(System.Xml.Linq.ReaderOptions.None))
                                //{
                                //    var ser = new XmlSerializer(typeof(SOAPClass.Envelope));
                                //    deserializedObject = (SOAPClass.Envelope)ser.Deserialize(reader);
                                //    var z = deserializedObject;
                                //}
                            }
                        }
                    }
                    catch (Exception Ex)
                    {
                        if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                        {
                            //No guarda nada en el log por que aveces no viene completa la trama
                        }
                        if (Ex.Message == "Error en el servidor remoto: (403) Prohibido.")
                        {
                            //No guarda nada en el log por que aveces no viene completa la trama
                        }
                        else
                        {
                            log.Error("Error MonitoreoYRastreo_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error GrupoGCP_ObtenerPosicion: " + UsuarioReC + ". " + Ex.Message);
                }
            }
        }
Exemple #16
0
        public static async void Soltrack_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            var       responseJson = "";
            var       IMEIenCurso  = "";
            DataTable DT_Data      = new DataTable();

            try
            {
                //Carga los IMEI que se van a consultar
                DT_Data = GetData_ListaGPSxProveedor("T. HERNANDEZ");
                if (DT_Data.Rows.Count == 0)
                {
                    return;
                }
                for (int i = 0; i < DT_Data.Rows.Count; i++)
                {
                    IMEIenCurso = DT_Data.Rows[i]["IMEI"].ToString();

                    using (var client = new HttpClient())
                    {
                        //setup client
                        client.BaseAddress = new Uri("http://plataforma.soltrack.com");
                        client.DefaultRequestHeaders.Accept.Clear();


                        var securityToken = "d9de38b6-fd06-4b17-85a9-cef35dc44fb2";
                        var from          = DateTime.UtcNow.AddMinutes(-30).ToString("yyyy-MM-dd HH:mm");
                        var to            = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm");

                        //send request
                        HttpResponseMessage responseMessage = await client.GetAsync("/WS/WSTrack2.asmx/GetPositionsByIMEIAndDateRange?securityToken=" + securityToken + "&imei=" + IMEIenCurso + "&from=" + from + "&to=" + to);

                        //get access token from response body
                        responseJson = await responseMessage.Content.ReadAsStringAsync();



                        responseJson = System.Text.RegularExpressions.Regex.Replace(responseJson, "&lt;", "<");
                        responseJson = System.Text.RegularExpressions.Regex.Replace(responseJson, "&gt;", ">");

                        System.Xml.XmlDocument doc2 = new System.Xml.XmlDocument();
                        doc2.LoadXml(responseJson);
                        string json2 = JsonConvert.SerializeXmlNode(doc2);

                        json2 = System.Text.RegularExpressions.Regex.Replace(json2, "string", "Dataset");
                        json2 = json2.Replace("?", "");
                        json2 = json2.Replace("#", "");
                        json2 = System.Text.RegularExpressions.Regex.Replace(json2, "@", "");

                        if (json2 == "{\"xml\":{\"version\":\"1.0\",\"encoding\":\"utf-8\"},\"Dataset\":{\"xmlns\":\"http://www.tempuri.org/\",\"NewDataSet\":null}}")
                        {
                            continue;
                        }


                        var objetoresult = new Table();
                        try
                        {
                            var result = JsonConvert.DeserializeObject <ObjectResult>(json2);
                            objetoresult = result.Dataset.NewDataSet.Table;
                        }
                        catch (Exception Ex)
                        {
                            try
                            {
                                json2 = System.Text.RegularExpressions.Regex.Replace(json2, "Table", "Tables");
                                var result = JsonConvert.DeserializeObject <ObjectResult>(json2);
                                objetoresult = result.Dataset.NewDataSet.Tables[0];
                            }
                            catch (Exception Ex2)
                            {
                                continue;
                            }
                        }

                        if (objetoresult.IMEI == null || objetoresult.IMEI == "")
                        {
                            continue;
                        }

                        //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                        string imei         = objetoresult.IMEI.ToString();
                        string codigoevento = objetoresult.EventName == null ? "" : objetoresult.EventName.ToString();

                        string lat = objetoresult.Lat.ToString();
                        string lng = objetoresult.Lon.ToString();
                        //string evento = objetoresult.status.ToString();
                        string odometro = objetoresult.Odometer.ToString().Split('.')[0];
                        ////string placas = ((dynamic)objetoresult).Plates;
                        string velocidad = objetoresult.Speed.ToString().Split('.')[0];
                        string bateria   = "0";
                        string direccion = objetoresult.Direction.ToString().Split('.')[0];
                        //2017 / 07 / 07 20:37:06
                        var fechahoragps = objetoresult.ActualDate;    //YA VIENE EN UTC
                        ////Validaciones

                        //////Conversiones de datos
                        var LAT      = decimal.Parse(lat);
                        var LNG      = decimal.Parse(lng);
                        var ODOMETRO = int.Parse(odometro);
                        ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(velocidad);
                        var DIRECCION = int.Parse(direccion);
                        var BATERIA   = int.Parse(bateria);


                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + " IMEI: " + imei + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". ");
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                log.Error("Error Soltrack_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
            }
        }
Exemple #17
0
        public static async void RedGPS_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            var responseJson = "";

            try
            {
                if (Token == null || Token == "")
                {
                    RedGPS_ObtenerToken(UsuarioReC);
                    return;
                }

                using (var client = new HttpClient())
                {
                    //setup client
                    client.BaseAddress = new Uri("http://api.redgps.com");
                    client.DefaultRequestHeaders.Accept.Clear();
                    //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    //setup login data
                    var formContent = new FormUrlEncodedContent(new[]
                    {
                        new KeyValuePair <string, string>("apikey", "3cc7690df44e947d330963e65528e34b"),
                        new KeyValuePair <string, string>("token", Token)
                    });

                    //send request
                    HttpResponseMessage responseMessage = await client.PostAsync("/api/v1/getdata", formContent);

                    //get access token from response body
                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    if (responseJson.Contains("error"))
                    {
                        Token = "";
                        RedGPS_ObtenerToken(UsuarioReC);
                        return;
                    }

                    var res = JsonConvert.DeserializeObject <ResultObject>(responseJson);

                    if (res.status == 30400 || res.data == null || res.data.Count == 0)
                    {
                        RedGPS_ObtenerToken(UsuarioReC);
                        return;
                    }

                    var result = res.data;

                    for (int i = 0; i < result.Count; i++)
                    {
                        //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                        string imei         = result[i].GpsIdentif.ToString();
                        string codigoevento = "1";

                        string lat = result[i].Latitude.ToString();
                        string lng = result[i].Longitude.ToString();
                        //string evento = result[i].status.ToString();
                        string odometro = result[i].Odometer.ToString();
                        ////string placas = ((dynamic)res[i]).Plates;
                        string velocidad = result[i].GpsSpeed.ToString();
                        string bateria   = "100";
                        string direccion = "0";

                        var fechahoragps = DateTime.ParseExact(result[i].ReportDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                        fechahoragps = fechahoragps.ToUniversalTime();
                        ////Validaciones

                        //////Conversiones de datos
                        var LAT      = decimal.Parse(lat);
                        var LNG      = decimal.Parse(lng);
                        var ODOMETRO = int.Parse(odometro);
                        ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(velocidad);
                        var DIRECCION = int.Parse(direccion);
                        var BATERIA   = int.Parse(bateria);


                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". " + responseJson);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error RedGPS_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #18
0
        public static async void PlataformaLVT_ObtenerPosicion(string UsuarioReC, string Usuario, string Password, string vehiclegroup, string TProveedor)
        {
            var       IMEIenCurso = "";
            DataTable DT_Data     = new DataTable();

            try
            {
                //Solicita todos los vehiculos de un grupo en especifico {vehiclegroupId}
                //En esta URL se obtienen los grupos de vehiculos
                //http://us.mzoneweb.net/api/v2/vehiclegroups.json
                //JSon resultado de solicitar los vehiculos de un grupo en especifico
                //"Items":[{"Id":37599583897,"UnitId":"2051794","Direction":345.00,"EventTypeId":1,"EventTypeDescription":"Posición Periódica","LocalTimestamp":"2017-11-17T06:35:09-05:00","Odometer":40345,"Position":[-100.46444,22.95146],"RPM":0,"Speed":102.00,"UnitOfDistanceCode":"km"}]

                var responseJson  = "";
                var responseJson2 = "";
                var responseJson3 = "";

                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri("https://us.mzoneweb.net");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    var byteArray = Encoding.ASCII.GetBytes(Usuario + ":" + Password);
                    var header    = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
                    client.DefaultRequestHeaders.Authorization = header;

                    //var fini = DateTime.Now.AddMinutes(-5).ToString("yyyyMMddTHHmmss");
                    var fini = DateTime.Now.AddHours(-5).ToString("yyyyMMddTHHmmss");
                    var ffin = DateTime.Now.ToString("yyyyMMddTHHmmss");

                    HttpResponseMessage responseMessage = await client.GetAsync("/api/v2/vehiclegroups/" + vehiclegroup + "/events/" + fini + "/" + ffin + ".json");

                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    var result = JsonConvert.DeserializeObject <Eventos>(responseJson);


                    //Solicita la ultima posicion en del grupo de vehiculos en un rango de -5 y la fecha y hora actual
                    //Aqui se puede consultar mas datos de los vehiculos por grupo
                    //https://us.mzoneweb.net/api/v2/vehiclegroups/{vehiclegroupId}/units.json
                    //JSon resultado de solicitar las ultimas posiciones de un grupo en especifico
                    //"Items":[{"LocalTimestamp":"2017-11-17T15:04:26-05:00","Id":"4cf8f7b2-df0e-4c09-a093-2352cb0dc932","Description":"3163 Jose Victoria Medrano","UnitId":"1454100","Position":[-99.30786,19.34838],"Location":"Carretera Toluca - México, Zentlapatl, Ciudad de México"}]

                    using (var client2 = new HttpClient())
                    {
                        client2.BaseAddress = new Uri("https://us.mzoneweb.net");
                        client2.DefaultRequestHeaders.Accept.Clear();
                        client2.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                        var byteArray2 = Encoding.ASCII.GetBytes(Usuario + ":" + Password);
                        var header2    = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray2));
                        client2.DefaultRequestHeaders.Authorization = header2;


                        HttpResponseMessage responseMessage2 = await client2.GetAsync("/api/v2/vehiclegroups/" + vehiclegroup + "/lastknownpositions.json");

                        responseJson2 = await responseMessage2.Content.ReadAsStringAsync();

                        var result2 = JsonConvert.DeserializeObject <Eventos>(responseJson2);

                        //////// busca por unitid y fechahora para obtener velocidad, odometro y heading
                        for (int i = 0; i < result2.Items.Count; i++) //Result2 es el array con elementos unicos
                        {
                            for (int j = 0; j < result.Items.Count; j++)
                            {
                                if (result.Items[j].UnitId == result2.Items[i].UnitId && result.Items[j].LocalTimestamp == result2.Items[i].LocalTimestamp)
                                {
                                    result2.Items[i].Speed                = result.Items[j].Speed;
                                    result2.Items[i].Odometer             = result.Items[j].Odometer;
                                    result2.Items[i].Direction            = result.Items[j].Direction;
                                    result2.Items[i].EventTypeId          = result.Items[j].EventTypeId;
                                    result2.Items[i].EventTypeDescription = result.Items[j].EventTypeDescription;
                                    break;
                                }
                            }
                        }


                        for (int i = 0; i < result2.Items.Count; i++)
                        {
                            try
                            {
                                using (var client3 = new HttpClient())
                                {
                                    client3.BaseAddress = new Uri("https://us.mzoneweb.net");
                                    client3.DefaultRequestHeaders.Accept.Clear();
                                    client3.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                                    var byteArray3 = Encoding.ASCII.GetBytes(Usuario + ":" + Password);
                                    var header3    = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray3));
                                    client3.DefaultRequestHeaders.Authorization = header3;


                                    HttpResponseMessage responseMessage3 = await client3.GetAsync("/api/v2/vehicle/" + result2.Items[i].Id.ToString() + "/vehicle.json");

                                    responseJson3 = await responseMessage3.Content.ReadAsStringAsync();

                                    var result3 = JsonConvert.DeserializeObject <RootObject>(responseJson3);

                                    //Quita las guines (-) de la placa
                                    result3.Registration = System.Text.RegularExpressions.Regex.Replace(result3.Registration, "-", "");

                                    DT_Data = GetData_ListaGPSxProveedor(TProveedor); //tmp para no modificar demasiado el codigo (x8)

                                    string imei = result3.Registration.ToString();

                                    for (int k = 0; k < DT_Data.Rows.Count; k++)
                                    {
                                        IMEIenCurso = DT_Data.Rows[k]["IMEI"].ToString();

                                        //Hacer una peticion por cada ID para conocer las placas, si estan en el arreglo insertar

                                        if (imei != IMEIenCurso)
                                        {
                                            continue;
                                        }

                                        string codigoevento = result2.Items[i].EventTypeId.ToString();
                                        string lat          = result2.Items[i].Position[1].ToString();
                                        string lng          = result2.Items[i].Position[0].ToString();
                                        string odometro     = result2.Items[i].Odometer.ToString().Split('.')[0];
                                        string velocidad    = result2.Items[i].Speed.ToString().Split('.')[0];
                                        string bateria      = "100";
                                        string direccion    = result2.Items[i].Direction.ToString().Split('.')[0];

                                        DateTime fechahoragps = result2.Items[i].LocalTimestamp.ToUniversalTime();

                                        ////Validaciones

                                        ////Conversiones de datos
                                        var LAT       = decimal.Parse(lat);
                                        var LNG       = decimal.Parse(lng);
                                        var ODOMETRO  = int.Parse(odometro);
                                        var VELOCIDAD = int.Parse(velocidad);
                                        var DIRECCION = int.Parse(direccion);
                                        var BATERIA   = int.Parse(bateria);


                                        //Si no es repetida la inserta
                                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                                        WS_CONTEXT db = new WS_CONTEXT();

                                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                                        {
                                        }
                                        else
                                        {
                                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". " + imei);
                                        }
                                    }
                                }
                            }
                            catch (Exception Ex)
                            {
                                log.Error("Error PlataformaLVT_ObtenerPosicion: " + UsuarioReC + ". " + ". " + Ex.Message);
                            }
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                log.Error("Error PlataformaLVT_ObtenerPosicion: " + UsuarioReC + ". " + Ex.Message);
            }
        }
Exemple #19
0
        public static async void Unicomm_ObtenerPosicion(string UsuarioReC, string Token, string Usuario, string Password)
        {
            try
            {
                var responseJson = "";

                using (var client = new HttpClient())
                {
                    client.DefaultRequestHeaders.Accept.Clear();
                    //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    //var byteArray = Encoding.ASCII.GetBytes(Token);
                    var header = new AuthenticationHeaderValue("Token", Token);
                    client.DefaultRequestHeaders.Authorization = header;


                    HttpResponseMessage responseMessage = await client.GetAsync("http://ws.unicommplus.mx/consumo.json?time=30");

                    //Para consultar los economicos con imei hay que pegar esto en el navegador:
                    //http://ws.unicommplus.mx/consumo.json?time=30
                    //Cuenta: coopergdl
                    //Contraseña: c0opergdl

                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    var result = JsonConvert.DeserializeObject <Eventos>(responseJson);

                    //return;



                    for (int i = 0; i < result.vehicle_states.Count; i++)
                    {
                        string imei = "";
                        try
                        {
                            imei = result.vehicle_states[i].Vehicle_ID.ToString();
                            string codigoevento = result.vehicle_states[i].Event.ToString();
                            string lat          = result.vehicle_states[i].Latitude.ToString();
                            string lng          = result.vehicle_states[i].Longitude.ToString();
                            string odometro     = result.vehicle_states[i].Odometer.ToString().Split('.')[0];
                            string velocidad    = result.vehicle_states[i].Speed == null ? "0" : result.vehicle_states[i].Speed.ToString().Split('.')[0];
                            string bateria      = result.vehicle_states[i].Aux_Battery == null ? "0" : result.vehicle_states[i].Aux_Battery.ToString();
                            string direccion    = result.vehicle_states[i].Course == null ? "0" : result.vehicle_states[i].Course.ToString();

                            DateTime fechahoragps = DateTime.Parse(result.vehicle_states[i].PC_Date + " " + result.vehicle_states[i].PC_Time).ToUniversalTime();     //.ToUniversalTime();

                            ////Validaciones

                            ////Conversiones de datos
                            var LAT       = decimal.Parse(lat == null || lat == "" ? "0" : lat);
                            var LNG       = decimal.Parse(lng == null || lng == "" ? "0" : lng);
                            var ODOMETRO  = int.Parse(odometro == null || odometro == "" ? "0" : odometro);
                            var VELOCIDAD = int.Parse(velocidad == null || velocidad == "" ? "0" : velocidad);
                            var DIRECCION = int.Parse(direccion == null || direccion == "" ? "0" : direccion);
                            var BATERIA   = int.Parse(bateria == null || bateria == "" ? "0" : bateria);


                            //Si no es repetida la inserta
                            List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                            WS_CONTEXT db = new WS_CONTEXT();

                            WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                            if (WS_GPS_InsertaSimple[0].Indicador == 1)
                            {
                            }
                            else
                            {
                                log.Error("Error al Insertar evento de " + UsuarioReC + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". " + imei);
                            }
                        }
                        catch (Exception Ex)
                        {
                            log.Error("Error Unicomm_ObtenerPosicion: " + UsuarioReC + ". IMEI: " + imei + ". " + Ex.Message);
                        }
                    }


                    //for (int i = 0; i < result.Items.Count; i++)
                    //{
                    //}
                }
            }
            catch (Exception Ex)
            {
                log.Error("Error Unicomm_ObtenerPosicion: " + UsuarioReC + ". " + Ex.Message);
            }
        }
Exemple #20
0
        public static async void BOSON_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            var responseJson = "";

            try
            {
                using (var client = new HttpClient())
                {
                    //setup client
                    client.BaseAddress = new Uri("http://www.utrax2.com");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    //setup login data
                    var formContent = new FormUrlEncodedContent(new[]
                    {
                        //new KeyValuePair<string, string>("grant_type", "password"),
                        new KeyValuePair <string, string>("User", Usuario),
                        new KeyValuePair <string, string>("Password", Password),
                        new KeyValuePair <string, string>("Page", ""),
                    });

                    //send request
                    HttpResponseMessage responseMessage = await client.PostAsync("/web%20services/ws_last_position/ws_last_position.asmx/GetLastPosition_02", formContent);

                    //HttpResponseMessage responseMessage = await client.PostAsync("/web%20services/ws_last_position/ws_last_position.asmx/GetLastPosition_02?User="******"&Password="******"&Page=", formContent);

                    //get access token from response body
                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    //log.Info("Data BOSON_ObtenerPosicion: " + UsuarioReC + ". " + responseJson.ToString());
                    //load into XElement
                    XElement doc = XElement.Parse(responseJson);
                    var      res = doc.ToDynamicList();

                    for (int i = 0; i < res.Count; i++)
                    {
                        if (((dynamic)res[i]).Device_Id == "~" || ((dynamic)res[i]).Device_Id == "1" || ((System.Dynamic.ExpandoObject)(res[i])).Count() <= 5)
                        {
                            continue;
                        }
                        //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                        string imei         = ((dynamic)res[i]).Device_Id;
                        string codigoevento = ((dynamic)res[i]).eCode;

                        string lat       = ((dynamic)res[i]).Latitude;
                        string lng       = ((dynamic)res[i]).Longitude;
                        string evento    = ((dynamic)res[i]).Evento;
                        string odometro  = ((dynamic)res[i]).Odometer;
                        string placas    = ((dynamic)res[i]).Plates;
                        string velocidad = ((dynamic)res[i]).Speed;
                        string direccion = ((dynamic)res[i]).Course;
                        string fechahora = ((dynamic)res[i]).DateTime_GPS;

                        //Validaciones
                        if (imei == "~" || imei.Length <= 1)
                        {
                            continue;
                        }
                        if (lng == "~" || lng.Length <= 1)
                        {
                            continue;
                        }
                        if (lat == "~" || lat.Length <= 1)
                        {
                            continue;
                        }
                        if (fechahora == "~" || fechahora.Length <= 1)
                        {
                            continue;
                        }

                        imei         = imei == "~" ? "" : imei;
                        codigoevento = codigoevento == "~" ? "" : codigoevento;
                        evento       = evento == "~" ? "" : evento;
                        lat          = lat == "~" ? "0" : lat;
                        lng          = lng == "~" ? "0" : lng;
                        odometro     = odometro == "~" ? "0" : odometro;
                        placas       = placas == "~" ? "" : placas;

                        velocidad = velocidad == "~" ? "0" : velocidad;
                        if (velocidad.IndexOf(".") >= 0)
                        {
                            velocidad = velocidad.Remove(velocidad.IndexOf("."));
                        }
                        direccion = direccion == "~" ? "0" : direccion;
                        if (direccion.IndexOf(".") >= 0)
                        {
                            direccion = direccion.Remove(direccion.IndexOf("."));
                        }
                        fechahora = fechahora == "~" ? "1900-01-01" : fechahora;

                        ////Conversiones de datos
                        //codigoevento = codigoevento;
                        //evento = evento;
                        var LAT      = decimal.Parse(lat);
                        var LNG      = decimal.Parse(lng);
                        var ODOMETRO = int.Parse(odometro);
                        var PLACAS   = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(velocidad);
                        var DIRECCION = int.Parse(direccion);
                        //string[] formats = { "M/dd/yyyy hh:mm:ss tt" };
                        //var dateTime = DateTime.ParseExact(fechahora, formats, new System.Globalization.CultureInfo("en-US"), System.Globalization.DateTimeStyles.None);
                        var dateTime = DateTime.ParseExact(fechahora, "M/d/yyyy h:m:ss tt", CultureInfo.InvariantCulture);
                        dateTime = dateTime.ToUniversalTime();

                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, decimal.Parse(lat), decimal.Parse(lng), "", true, int.Parse(velocidad), int.Parse(direccion), 100, int.Parse(odometro), dateTime, dateTime).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            var json = JsonConvert.SerializeObject(res[i]);
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". " + json);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.InnerException != null && Ex.InnerException.Message == "No es posible conectar con el servidor remoto")
                {
                    //No hay conexion al servidor, a veces se protege de conexiones frecuentes., pero despues si deja conectarse.
                }
                if (Ex.InnerException != null && Ex.InnerException.Message == "Unable to connect to the remote server")
                {
                    //El servidor Boson no esta disponible o bien no esta nuestra ip autorizada en su servidor
                    log.Error("Error BOSON_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.InnerException.Message + ". " + " Verificar que la ip este autorizada con Boson.");
                }
                else if (Ex.InnerException != null)
                {
                    log.Error("Error BOSON_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.InnerException.Message);
                    //No hay conexion al servidor, a veces se protege de conexiones frecuentes., pero despues si deja conectarse.
                }
                else
                {
                    log.Error("Error BOSON_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #21
0
        public static void Trackjack_ObtenerPosicion(string UsuarioReC, string Usuario, string Password)
        {
            var responseJson = "";

            try
            {
                WS_Trackjack_Service.ServiceSoapClient servicePosicionesTodos = new WS_Trackjack_Service.ServiceSoapClient();
                var vehicles = servicePosicionesTodos.PosicionesTodos(Usuario, Password);

                for (int i = 0; i < vehicles.Length; i++)
                {
                    try
                    {
                        string imei = vehicles[i].UnitPlate.ToString();
                        imei = System.Text.RegularExpressions.Regex.Replace(imei, "-", "");
                        imei = System.Text.RegularExpressions.Regex.Replace(imei, " ", "");

                        if (imei == "S/N")
                        {
                            continue;
                        }

                        string codigoevento = vehicles[i].Evento.ToString();

                        string lat      = vehicles[i].Latitude.ToString();
                        string lng      = vehicles[i].Longitude.ToString();
                        string odometro = vehicles[i].Odometer.ToString().Split('.')[0];
                        ////string placas = ((dynamic)res[i]).Plates;
                        string velocidad = vehicles[i].SpeedGps.ToString().Split('.')[0];

                        string bateria   = "100";
                        string direccion = vehicles[i].direccion.ToString().Split('.')[0];


                        var fechahoragps = DateTime.ParseExact(vehicles[i].DateGps, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                        fechahoragps = fechahoragps.ToUniversalTime();
                        var fechahoraserver = DateTime.ParseExact(vehicles[i].DateGps, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                        fechahoraserver = fechahoraserver.ToUniversalTime();

                        //////Conversiones de datos
                        ////codigoevento = codigoevento;
                        ////evento = evento;
                        var LAT      = decimal.Parse(lat);
                        var LNG      = decimal.Parse(lng);
                        var ODOMETRO = int.Parse(odometro);
                        ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(velocidad);
                        var DIRECCION = int.Parse(direccion);
                        var BATERIA   = int.Parse(bateria);

                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoraserver).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + " IMEI: " + imei + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". ");
                        }
                    }
                    catch (Exception Ex)
                    {
                        log.Error("Error GrupoUDA_ObtenerPosicion: " + UsuarioReC + ". " + Ex.Message);
                    }
                }
            }
            catch (Exception Ex)
            {
                log.Error("Error Trackjack_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
            }
        }
Exemple #22
0
        public static async void GGpsMonitor_ObtenerPosicion(string UsuarioReC)
        {
            var responseJson = "";

            //Ejemplo de datos que retorna el WS
            //[{"odometer":37781247,"IMEI":"011892001916110","latitude":19.41855,"longitude":-99.0552833333,"speed":0,"course":0,"pos_date":"2017-04-06 18:54:28","pos_rec":"2017-11-07 22:23:13"},{"odometer":0,"IMEI":"865733028634491","latitude":19.4186066,"longitude":-99.055065,"speed":0,"course":336,"pos_date":"2017-10-15 01:01:36","pos_rec":"2017-11-07 22:23:13"},

            try
            {
                using (var client = new HttpClient())
                {
                    //setup client
                    client.BaseAddress = new Uri("https://goldenm.solutions");
                    client.DefaultRequestHeaders.Accept.Clear();

                    //send request
                    HttpResponseMessage responseMessage = await client.GetAsync("/webservices/gpsmonitor4/");

                    //get access token from response body
                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    //----<list<RootObject>>(*)----
                    var result = JsonConvert.DeserializeObject <List <RootObject> >(responseJson);

                    for (int i = 0; i < result.Count; i++)
                    {
                        try
                        {
                            //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                            string imei         = result[i].IMEI.ToString();
                            string lat          = result[i].latitude.ToString();
                            string lng          = result[i].longitude.ToString();
                            string codigoevento = "0";
                            string odometro     = result[i].odometer.ToString();
                            string velocidad    = result[i].speed.ToString();
                            string bateria      = "100";
                            string direccion    = result[i].course.ToString().Split('.')[0];

                            var fechahoragps = DateTime.ParseExact(result[i].pos_date, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                            //fechahoragps = fechahoragps.ToUniversalTime();

                            var fechahoraserver = DateTime.ParseExact(result[i].pos_rec, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
                            //fechahoraserver = fechahoraserver.ToUniversalTime();
                            ////Validaciones

                            //////Conversiones de datos
                            var LAT      = decimal.Parse(lat);
                            var LNG      = decimal.Parse(lng);
                            var ODOMETRO = int.Parse(odometro);
                            ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                            ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                            var VELOCIDAD = int.Parse(velocidad);
                            var DIRECCION = int.Parse(direccion);
                            var BATERIA   = int.Parse(bateria);

                            //Si no es repetida la inserta
                            List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                            WS_CONTEXT db = new WS_CONTEXT();

                            WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoraserver).ToList();
                            if (WS_GPS_InsertaSimple[0].Indicador == 1)
                            {
                            }
                            else
                            {
                                log.Error("Error al Insertar evento de " + UsuarioReC + ". IMEI: " + imei + " " + WS_GPS_InsertaSimple[0].Mensaje);
                            }
                        }
                        catch (Exception Ex)
                        {
                            log.Error("Error RedGPS_ObtenerPosicion: " + UsuarioReC + Ex.Message);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error GrupoGCP_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #23
0
        public static void ZeekGPS_ObtenerPosicion(string UsuarioReC, string Usuario, string Password, string Licencia)
        {
            var responseJson = "";

            try
            {
                auth  = ws.AutentificaUsuario(Usuario, Password, Licencia);
                Token = auth.Token.ToString();
                if (Token == "0")
                {
                    log.Info("WebService ZeekGPS Error de Autenticacion: " + UsuarioReC + ". ");
                    return;
                }
                else
                {
                    try
                    {
                        var listaunidades = auth.Vehiculos.Select(x => x.Unidad).ToArray();  //Se filtra unicamente la columna unidad para pasarlo como parametro adelante
                        var result        = ws.UltimasUbicaciones(long.Parse(Token), Licencia, auth.Cliente, listaunidades);

                        if (listaunidades.Count() == 0 || result == null)  //No hay unidades en el webservice
                        {
                            return;
                        }


                        var vehiculos = result.ToList();
                        for (int i = 0; i < vehiculos.Count(); i++)
                        {
                            try
                            {
                                //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                                string imei         = vehiculos[i].Unidad.ToString();
                                string codigoevento = "1";

                                string lat = LatLngNumeroaDecimal(vehiculos[i].Latitud).ToString().Substring(0, vehiculos[i].Latitud.ToString().Length >= 12 ? 12 : vehiculos[i].Latitud.ToString().Length);
                                string lng = LatLngNumeroaDecimal(vehiculos[i].Longitud).ToString().Substring(0, vehiculos[i].Longitud.ToString().Length >= 14 ? 14 : vehiculos[i].Longitud.ToString().Length);
                                //string evento = result[i].status.ToString();
                                string odometro = vehiculos[i].defOdometro.ToString();
                                ////string placas = ((dynamic)res[i]).Plates;
                                string velocidad = vehiculos[i].Velocidad.ToString().Split('.')[0];
                                string bateria   = "100";
                                string direccion = "0";

                                var fechahoragps = vehiculos[i].Fecha;
                                //fechahoragps = fechahoragps.ToUniversalTime();

                                ////Validaciones

                                //////Conversiones de datos
                                var LAT      = decimal.Parse(lat);
                                var LNG      = decimal.Parse(lng);
                                var ODOMETRO = int.Parse(odometro);
                                ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                                ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                                var VELOCIDAD = int.Parse(velocidad);
                                var DIRECCION = int.Parse(direccion);
                                var BATERIA   = int.Parse(bateria);


                                //Si no es repetida la inserta
                                List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                                WS_CONTEXT db = new WS_CONTEXT();

                                WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                                if (WS_GPS_InsertaSimple[0].Indicador == 1)
                                {
                                }
                                else
                                {
                                    log.Error("Error al Insertar evento de " + UsuarioReC + ". IMEI: " + (imei != null ? imei : "").ToString() + "  -  " + WS_GPS_InsertaSimple[0].Mensaje + ". " + responseJson);
                                }
                            }
                            catch (Exception Ex)
                            {
                                log.Error("Error ZeekGPS_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                            }
                        }
                    }
                    catch (Exception Ex)
                    {
                        if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                        {
                            //No guarda nada en el log por que aveces no viene completa la trama
                        }
                        else
                        {
                            log.Error("Error ZeekGPS_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error ZeekGPS_ObtenerToken: " + UsuarioReC + ". " + Ex.Message);
                }
                //Token = "";
            }
        }
Exemple #24
0
        public static void ObtenereInsertar(string UsuarioReC, string Usuario, string Password)
        {
            try
            {
                if (Ticket == null || Ticket.Value.ToString() == "")
                {
                    string state = Login(UsuarioReC, Usuario, Password);
                    return;
                }

                List <WS_SEND_StaticService.Vehicle> ReturnListVehicles = GetVehicleList(UsuarioReC, Usuario, Password);
                if (ReturnListVehicles == null || ReturnListVehicles.Count == 0)  //No hay unidades colocadas en la cuenta del webervice, es decir, no hay servicio para panalpina
                {
                    return;
                }

                int[] vehicles = ReturnListVehicles.Select(r => r.ID).ToArray();

                // Obtenir la derniere position du véhicule
                WS_SEND_StateService.StateRequest Request = new WS_SEND_StateService.StateRequest()
                {
                    UnsafeToken = GetStateToken(),
                    Vehicles    = vehicles
                };
                WS_SEND_StateService.StateContractClient      StateServiceClient = new WS_SEND_StateService.StateContractClient();
                WS_SEND_StateService.GetPositionEventResponse Response           = StateServiceClient.GetLastPositionEvent(Request);
                if (Response == null)
                {
                    return;
                }
                if (Response.PositionEvents.Length == 0)
                {
                    return;
                }

                if (Response.PositionEvents != null)
                {
                    for (int i = 0; i < Response.PositionEvents.Length; i++)
                    {
                        ////Conversiones de datos
                        var vehicleitem = ReturnListVehicles.SingleOrDefault(x => x.ID == Response.PositionEvents[i].VehicleID);
                        var IMEI        = vehicleitem.DeviceID.ToString();
                        var LAT         = decimal.Parse(Response.PositionEvents[i].Latitude.ToString());
                        var LNG         = decimal.Parse(Response.PositionEvents[i].Longitude.ToString());
                        var GPSValid    = Response.PositionEvents[i].IsGPSValid;
                        int ODOMETRO    = 0;
                        //var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        //PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(Response.PositionEvents[i].Speed.ToString());
                        var DIRECCION = int.Parse(Response.PositionEvents[i].Heading.ToString());
                        //string[] formats = { "M/dd/yyyy hh:mm:ss tt" };
                        //var dateTime = DateTime.ParseExact(fechahora, formats, new System.Globalization.CultureInfo("en-US"), System.Globalization.DateTimeStyles.None);
                        var dateTime = Response.PositionEvents[i].GPSDateTime;
                        dateTime = dateTime.ToUniversalTime();


                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, IMEI, "1", LAT, LNG, "", GPSValid, VELOCIDAD, DIRECCION, 100, ODOMETRO, dateTime, dateTime).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            var json = JsonConvert.SerializeObject(Response.PositionEvents[0]);
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". IMEI: " + (IMEI != null ? IMEI : "").ToString() + "  -  " + WS_GPS_InsertaSimple[0].Mensaje + ". " + json);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message.Contains("ticket has expired"))
                {
                    Ticket = null;
                    string state = Login(UsuarioReC, Usuario, Password);
                }
                log.Error("Error al Insertar evento de " + UsuarioReC + ". " + Ex.Message + ". ");
            }
        }
Exemple #25
0
        public static void Omnitracs_ObtenerPosicion(string UsuarioReC, string ClientCode, string Usuario, string Password)
        {
            var responseJson = "";

            try
            {
                var request = new ReCServices.WS_OmnitracsCC_Service.vehicleActivityRequestDTO();
                request.clientCode = ClientCode;
                request.userName   = Usuario;
                request.password   = Password;
                request.startDate  = DateTime.UtcNow.AddMinutes(-30).ToString("yyyy-MM-dd HH:mm:ss"); //"2017-09-20 00:00:00";
                request.endDate    = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss");                 //"2017-09-20 18:30:00";

                var cliente = new WS_OmnitracsCC_Service.VehicleActivityWebServiceClient();
                //cliente.ClientCredentials.UserName.UserName = "******";
                //cliente.ClientCredentials.UserName.Password = "******";
                var resp = cliente.getPositions(request);
                if (resp.responseDescription == "LOGIN_FAIL : err.ds.SecurityDataService.login.credentials")
                {
                    log.Error("Error LOGIN FAIL " + UsuarioReC + ". " + "Error de usuario o contraseña.");
                    return;
                }

                if (resp.vehicles == null || resp.vehicles.Count() == 0)
                {
                    //No hay vehiculos asignados
                    return;
                }

                for (int i = 0; i < resp.vehicles.Count(); i++)
                {
                    try
                    {
                        var position = resp.vehicles[i].positions.Count();
                        if (position == 0)
                        {
                            continue;
                        }
                        //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                        string imei         = resp.vehicles[i].positions[position - 1].deviceSerial.ToString();
                        string codigoevento = resp.vehicles[i].positions[position - 1].reason.ToString();

                        string lat = resp.vehicles[i].positions[position - 1].latitude.ToString();
                        string lng = resp.vehicles[i].positions[position - 1].longitude.ToString();
                        //string evento = res[i].status.ToString();
                        string odometro = resp.vehicles[i].positions[position - 1].odometer.ToString().Split('.')[0];
                        ////string placas = ((dynamic)res[i]).Plates;
                        string velocidad = resp.vehicles[i].positions[position - 1].speed.ToString().Split('.')[0];
                        string bateria   = "100";
                        string direccion = resp.vehicles[i].positions[position - 1].direction.ToString().Split('.')[0];
                        //2017 / 07 / 07 20:37:06
                        //DateTime fechahoragps = DateTime.ParseExact(res[i].T2060.position.posTS);
                        var fechahoragps    = resp.vehicles[i].positions[position - 1].posTS.ToUniversalTime();
                        var fechahoraserver = resp.vehicles[i].positions[position - 1].receiveDate.ToUniversalTime();
                        ////Validaciones

                        //////Conversiones de datos
                        var LAT      = decimal.Parse(lat);
                        var LNG      = decimal.Parse(lng);
                        var ODOMETRO = int.Parse(odometro);
                        ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(velocidad);
                        var DIRECCION = int.Parse(direccion);
                        var BATERIA   = int.Parse(bateria);


                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoraserver).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + " IMEI: " + imei + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". ");
                        }
                    }
                    catch (Exception Ex)
                    {
                        continue;
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error Omnitracs_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }
Exemple #26
0
        public static async void WIALON_ObtenerPosicion(string UsuarioReC, string Usuario, string Password, string Token)
        {
            TOKEN = Token;
            var responseJson = "";

            try
            {
                if (TOKEN == null || TOKEN == "")
                {
                    WIALON_ObtenerToken(UsuarioReC, TOKEN);
                    return;
                }

                using (var client = new HttpClient())
                {
                    //setup client
                    client.BaseAddress = new Uri("https://hst-api.wialon.com");
                    client.DefaultRequestHeaders.Accept.Clear();
                    //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    //setup login data
                    var formContent = new FormUrlEncodedContent(new[]
                    {
                        new KeyValuePair <string, string>("svc", "core/search_items"),
                        new KeyValuePair <string, string>("params", "{ \"spec\":{ \"itemsType\":\"avl_unit\",\"propName\":\"sys_name\",\"propValueMask\":\"*\",\"sortType\":\"sys_name\"},\"force\":1,\"flags\":1025,\"from\":0,\"to\":0}"),
                        new KeyValuePair <string, string>("sid", EID)
                    });

                    //send request
                    HttpResponseMessage responseMessage = await client.PostAsync("/wialon/ajax.html", formContent);

                    //HttpResponseMessage responseMessage = await client.PostAsync("/web%20services/ws_last_position/ws_last_position.asmx/GetLastPosition_02?User="******"&Password="******"&Page=", formContent);

                    //get access token from response body

                    //orgininal
                    responseJson = await responseMessage.Content.ReadAsStringAsync();

                    //responseMessage.Content.

                    if (responseJson.Contains("error"))
                    {
                        //TOKEN = "";
                        WIALON_ObtenerToken(UsuarioReC, TOKEN);
                        return;
                    }

                    var result = JsonConvert.DeserializeObject <SearchResult>(responseJson);

                    for (int i = 0; i < result.items.Count; i++)
                    {
                        //Consulta si ya existe la posicion, por si es repetida y no ha actualizado el equipo
                        string imei         = result.items[i].id.ToString();
                        string codigoevento = result.items[i].lmsg == null ? "" : result.items[i].lmsg.tp.ToString();

                        if (result.items[i].pos == null)
                        {
                            continue;
                        }

                        string lat = result.items[i].pos.y.ToString();
                        string lng = result.items[i].pos.x.ToString();
                        //string evento = result.items[i].status.ToString();
                        string odometro = result.items[i].lmsg.p.mileage.ToString();
                        ////string placas = ((dynamic)res[i]).Plates;
                        string velocidad = result.items[i].pos.s.ToString();
                        string bateria   = result.items[i].lmsg.p.battery.ToString();
                        string direccion = result.items[i].pos.c.ToString();

                        DateTime fechahoragps = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(result.items[i].pos.t);

                        ////Validaciones

                        //////Conversiones de datos
                        var LAT      = decimal.Parse(lat);
                        var LNG      = decimal.Parse(lng);
                        var ODOMETRO = int.Parse(odometro);
                        ////var PLACAS = System.Text.RegularExpressions.Regex.Replace(placas, "-", "");
                        ////PLACAS = System.Text.RegularExpressions.Regex.Replace(PLACAS, " ", "");
                        var VELOCIDAD = int.Parse(velocidad);
                        var DIRECCION = int.Parse(direccion);
                        var BATERIA   = int.Parse(bateria);


                        //Si no es repetida la inserta
                        List <WS_GPS_InsertaSimple_Result> WS_GPS_InsertaSimple;

                        WS_CONTEXT db = new WS_CONTEXT();

                        WS_GPS_InsertaSimple = db.WS_GPS_InsertaSimple(UsuarioReC, imei, codigoevento, LAT, LNG, "", true, VELOCIDAD, DIRECCION, BATERIA, ODOMETRO, fechahoragps, fechahoragps).ToList();
                        if (WS_GPS_InsertaSimple[0].Indicador == 1)
                        {
                        }
                        else
                        {
                            log.Error("Error al Insertar evento de " + UsuarioReC + ". " + WS_GPS_InsertaSimple[0].Mensaje + ". " + responseJson);
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                if (Ex.Message == "'System.Dynamic.ExpandoObject' no contiene una definición para 'Latitude'.")
                {
                    //No guarda nada en el log por que aveces no viene completa la trama
                }
                else
                {
                    log.Error("Error WIALON_ObtenerPosicion: " + UsuarioReC + ". " + responseJson + ". " + Ex.Message);
                }
            }
        }