private async Task GeoReverseCodeGpsData(List <TLGpsDataEvent> gpsRessult) { foreach (var gpSdata in gpsRessult) { gpSdata.Address = await _reverseGeoCodingService.ReverseGoecode(gpSdata.Lat, gpSdata.Long); } }
private static async void ThreadProc(object state) { string imei = string.Empty; var client = ((TcpClient)state); NetworkStream nwStream = ((TcpClient)state).GetStream(); byte[] buffer = new byte[client.ReceiveBufferSize]; try { var gpsResult = new List <CreateTeltonikaGps>(); while (true) { int bytesRead = nwStream.Read(buffer, 0, client.ReceiveBufferSize) - 2; string dataReceived = Encoding.ASCII.GetString(buffer, 2, bytesRead); if (imei == string.Empty) { imei = dataReceived; Console.WriteLine("IMEI received : " + dataReceived); Byte[] b = { 0x01 }; nwStream.Write(b, 0, 1); var command = new CreateBoxCommand(); command.Imei = imei; await _endpoint.Result.Send(command); } else { int dataNumber = Convert.ToInt32(buffer.Skip(9).Take(1).ToList()[0]); var parser = new DevicesParser(); gpsResult.AddRange(parser.Decode(new List <byte>(buffer), imei)); var bytes = Convert.ToByte(dataNumber); await nwStream.WriteAsync(new byte[] { 0x00, 0x0, 0x0, bytes }, 0, 4); client.Close(); } if (gpsResult.Count <= 0) { continue; } foreach (var gpSdata in gpsResult) { gpSdata.Address = await _reverseGeoCodingService.ReverseGoecode(gpSdata.Lat, gpSdata.Long); Console.WriteLine("IMEI: " + imei + " Date: " + gpSdata.Timestamp + " latitude : " + gpSdata.Lat + " Longitude:" + gpSdata.Long + " Speed: " + gpSdata.Speed + " Direction:" + "" + " address " + gpSdata.Address + " milage :" + gpSdata.Mileage); await _bus.Publish(gpSdata); } break; } } catch (Exception) { // Console.WriteLine(e); client.Close(); //throw; } //throw new NotImplementedException(); }