public async Task <IActionResult> Create([FromBody] CreateGeoTrackerViewModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } GeoTracker geoTracker = new GeoTracker { Enabled = true, GpsModel = model.GpsModel, Identifier = model.Identifier, CreationDate = DateTime.Now }; _context.GeoTrackers.Add(geoTracker); try { await _context.SaveChangesAsync(); } catch (Exception ex) { return(BadRequest()); } return(Ok()); }
public async void HandleDeivce(Object obj) { TcpClient client = (TcpClient)obj; var stream = client.GetStream(); string imei = String.Empty; string data = null; string strIdentifier = null; string coderesponse = "AP01HSO"; Byte[] bytes = new Byte[256]; int i; try { while ((i = stream.Read(bytes, 0, bytes.Length)) != 0) { string hex = BitConverter.ToString(bytes); data = Encoding.ASCII.GetString(bytes, 0, i); ResponseTrackerLog responseTrackerLog = new ResponseTrackerLog(); responseTrackerLog = await SaveLog(data); Console.WriteLine(DateTime.Now.ToLongTimeString()); Console.WriteLine("{1}: Received: {0}", data, Thread.CurrentThread.ManagedThreadId); strIdentifier = data.Substring(1, 12); if (data.Length < 40) { //Requiere una respuesta string str = "(" + strIdentifier + coderesponse + ")"; Byte[] reply = System.Text.Encoding.ASCII.GetBytes(str); stream.Write(reply, 0, reply.Length); Console.WriteLine("{1}: Sent: {0}", str, Thread.CurrentThread.ManagedThreadId); } else { //Saco las coodenadas //Algo asi viene //(072101557346BR00200305A3448.6169S05816.0160W000.0123604000.00,00000000L00000000) // string lat = "3448,6169"; // string lng = "05816,0195"; string strLatitud = data.Substring(24, 9); string strLongitud = data.Substring(34, 10); //Busco el id gel GeoTracker GeoTracker geoTracker = new GeoTracker(); //De lo contrario guardo las coordenadas geoTracker = await GetGeoTracker(strIdentifier); if (geoTracker != null && responseTrackerLog != null) { CreateGeoReference createGeoReference = new CreateGeoReference { GeoTrackerId = geoTracker.Id, TrackerLogId = responseTrackerLog.Id, Identifier = strIdentifier, Latitude = "-" + Latitud(strLatitud).ToString(), Longitude = "-" + Longitud(strLongitud).ToString() }; SaveGeoReference(createGeoReference); } } } } catch (Exception e) { Console.WriteLine("Exception: {0}", e.ToString()); client.Close(); } }