static void Main(string[] args) { bool dataCorrupt = false; while (true) { try { TcpListener serverSocket = new TcpListener(IPAddress.Any, 350); TcpClient clientSocket = default(TcpClient); serverSocket.Stop(); serverSocket.Start(); Console.WriteLine(" >> Service beschikbaar."); clientSocket = serverSocket.AcceptTcpClient(); Console.WriteLine(" >> Verbinding met cliënt aanvaarden."); NetworkStream netwerkStream = clientSocket.GetStream(); byte[] bytesIn = new byte[clientSocket.ReceiveBufferSize]; netwerkStream.Read(bytesIn, 0, clientSocket.ReceiveBufferSize); string clientData = Encoding.ASCII.GetString(bytesIn); //string clientData = "@vochtigheid&temp&licht&CO2&51,392574&4,474912&010619 15164200&arthur$"; clientData = clientData.TrimStart('@'); clientData = clientData.Substring(0, clientData.IndexOf("$")); string[] data = clientData.Split(new char[] { '&' }); foreach (string str in data) { if (str == null) { dataCorrupt = true; break; } } if (!dataCorrupt) { try { Console.WriteLine(" >> Data ontvangen van client: {0} {1} {2} {3} {4} {5} {6}", data[0], data[1], data[2], data[3], data[4], data[5], data[6]); string vochtigheid = data[0]; string temperatuur = data[1]; string lichtsterkte = data[2]; string CO2 = data[3]; string breedtegraad = data[4].Replace('.', ','); string lengtegraad = data[5].Replace('.', ','); if (data[6].Length >= 12) { data[6] = data[6].Insert(1, "-"); data[6] = data[6].Insert(4, "-"); data[6] = data[6].Insert(10, ":"); data[6] = data[6].Insert(13, ":"); data[6] = data[6].Insert(16, ":"); } string time = data[6]; string user = data[7]; // START API QUERY string query = string.Format("json?key=2dacfb3978c248c497fffefc37f76ca4&q={0}%2C+{1}&pretty=1&no_annotations=1", breedtegraad, lengtegraad); string result; Console.WriteLine(" >> Making API Call..."); Gemeente.GemeenteData gm = new Gemeente.GemeenteData(); using (var client = new HttpClient(new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate })) { client.BaseAddress = new Uri("https://api.opencagedata.com/geocode/v1/"); HttpResponseMessage response = client.GetAsync(query).Result; response.EnsureSuccessStatusCode(); result = response.Content.ReadAsStringAsync().Result; } JsonConvert.PopulateObject(result, gm); // END API QUERY string gemeente = gm.results[0].components.postcode; Console.WriteLine(">> Plaats: {0}", gemeente); AddData(vochtigheid, temperatuur, lichtsterkte, CO2, breedtegraad, lengtegraad, time, user, gemeente); } catch (Exception) { //.WriteLine(error); } } else { Console.WriteLine(">> Data corrupt: {0} {1} {2} {3} {4} {5} {6}", data[0], data[1], data[2], data[3], data[4], data[5], data[6]); } netwerkStream.Flush(); Console.WriteLine(" >> "); clientSocket.Close(); serverSocket.Stop(); } catch (Exception error) { Console.WriteLine(error.Message); } } }
public void AddSD(string data) { string DataString = data; bool dataCorrupt = false; string[] DataArray; try { //split string from DATALOG.txt DataArray = DataString.Split(new char[] { '&' }); for (int x = 0; x < DataArray.Length - 1; x++) { if (DataArray[x + 4] == "1000.000000" || DataArray[x + 5] == "1000.000000") { dataCorrupt = true; } if (dataCorrupt == false) { if (DataArray[x + 6].Length == 13) { DataArray[x + 6] = DataArray[x + 6].Insert(2, "-"); DataArray[x + 6] = DataArray[x + 6].Insert(5, "-"); DataArray[x + 6] = DataArray[x + 6].Insert(11, ":"); DataArray[x + 6] = DataArray[x + 6].Insert(14, ":"); DataArray[x + 6] = DataArray[x + 6].Insert(17, ":"); } else if (DataArray[x + 6].Length == 14) { DataArray[x + 6] = DataArray[x + 6].Insert(1, "-"); DataArray[x + 6] = DataArray[x + 6].Insert(4, "-"); DataArray[x + 6] = DataArray[x + 6].Insert(10, ":"); DataArray[x + 6] = DataArray[x + 6].Insert(13, ":"); DataArray[x + 6] = DataArray[x + 6].Insert(16, ":"); } DataArray[x + 4] = DataArray[x + 4].Replace('.', ','); DataArray[x + 5] = DataArray[x + 5].Replace('.', ','); } string query = string.Format("json?key=2dacfb3978c248c497fffefc37f76ca4&q={0}%2C+{1}&pretty=1&no_annotations=1", DataArray[x + 4], DataArray[x + 5]); string result; Console.WriteLine("Making API Call..."); Gemeente.GemeenteData gm = new Gemeente.GemeenteData(); using (var client = new HttpClient(new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate })) { client.BaseAddress = new Uri("https://api.opencagedata.com/geocode/v1/"); HttpResponseMessage response = client.GetAsync(query).Result; response.EnsureSuccessStatusCode(); result = response.Content.ReadAsStringAsync().Result; } JsonConvert.PopulateObject(result, gm); AddData(DataArray[x], DataArray[x + 1], DataArray[x + 2], DataArray[x + 3], DataArray[x + 4], DataArray[x + 5], DataArray[x + 6], DataArray[x + 7], gm.results[0].components.postcode); x = x + 7; } } catch (Exception error) { Console.WriteLine(error.ToString()); } }