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 + ". "); } }
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); } } }
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); } } }
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); } } }
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, "<", "<"); responseJson = System.Text.RegularExpressions.Regex.Replace(responseJson, ">", ">"); 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); } } }
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, "<", "<"); responseJson = System.Text.RegularExpressions.Regex.Replace(responseJson, ">", ">"); 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); } } }
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); } } }
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); } } }
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); } } }
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); } }
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); } } }
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); } }
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); } } }
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); } } }
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, "<", "<"); responseJson = System.Text.RegularExpressions.Regex.Replace(responseJson, ">", ">"); 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); } }
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); } } }
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); } }
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); } }
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); } } }
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); } }
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); } } }
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 = ""; } }
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 + ". "); } }
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); } } }
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); } } }