public ArduinoStationVariable PostArduinoStationVariable([FromBody] ArduinoStationVariable value) { return(value); }
private static void OnCallBack() { timer.Change(Timeout.Infinite, Timeout.Infinite); //stops the timer //Thread.Sleep(3000); //doing some long operation ApplicationDbContext db = (ApplicationDbContext)_serviceProvider.GetService(typeof(ApplicationDbContext)); var lstArduinoStations = db.ArduinoStations.ToList(); foreach (var arduinoStation in lstArduinoStations) { var uri = new Uri(arduinoStation.Uri + "getsensorsdata"); try { CancellationTokenSource = new CancellationTokenSource(connectTimeOut); var t = CancellationTokenSource.Token; using (HttpClient client = new HttpClient()) using (HttpResponseMessage response = client.GetAsync(uri, t).Result) using (HttpContent content = response.Content) { // ... Read the string. string result = content.ReadAsStringAsync().Result; // ... Display the result. if (result != null && result.Length >= 50) { var Variables = result.Substring(result.IndexOf("<body>") + 6, result.IndexOf("</body>") - result.IndexOf("<body>") - 7); var VariablesArray = Variables.Split(','); foreach (var variable in VariablesArray) { var variableVal = variable.Substring(1, variable.Length - 2); var keyVallue = variableVal.Split(':'); var vv = new ArduinoStationVariable(); vv.ArduinoStationId = arduinoStation.Id; vv.DateCaptured = DateTimeOffset.Now; vv.VariableId = int.Parse(keyVallue[0]); vv.ValueCaptured = decimal.Parse(keyVallue[1], CultureInfo.InvariantCulture); db.ArduinoStationVariables.Add(vv); db.SaveChanges(); //edw mporoume na kanoume entoles me tin igrasia if (vv.VariableId == 5) { //var avg = db.ArduinoStationVariables.Where(x=>x.VariableId == 5).Take(2).Select(x=>x.ValueCaptured).Average(x=>x); //teleutees kapies //if (avg < 10) //{ // //xamila ara anoikse //} //else if (vv.ValueCaptured > 100) { //ipsila ara kleise var arduinoService = new ArduinoService(db); var openCloseCommandDto = new OpenCloseCommandDto() { StationId = arduinoStation.Id, StationStatus = false }; var aa = arduinoService.SendOpenCLoseCommand(openCloseCommandDto).Result; } } } Console.WriteLine(result.Substring(0, 50) + "..."); } } } catch (Exception e) { Console.WriteLine(e); //throw; } } timer.Change(0, TimeSpan); //restarts the timer }