public async Task <bool> Post([FromBody] OpenCloseCommandDto openCloseCommandDto) { var arduinoService = new ArduinoService(_db); await arduinoService.SendOpenCLoseCommand(openCloseCommandDto); return(true); }
public async Task <bool> SendOpenCLoseCommand(OpenCloseCommandDto openCloseCommandDto) { bool waterStatus = openCloseCommandDto.StationStatus; var arduinoStation = _db.ArduinoStations.FirstOrDefault(x => x.Id == openCloseCommandDto.StationId); //if (arduinoStation.WaterStatus != waterStatus) //{ try { arduinoStation.WaterStatus = waterStatus; _db.SaveChanges(); // ... Use HttpClient. var urlWaterCommand = ""; if (arduinoStation.WaterStatus) { urlWaterCommand = $"{arduinoStation.Uri}wateron/"; } else { urlWaterCommand = $"{arduinoStation.Uri}wateroff/"; } using (HttpClient client = new HttpClient()) using (HttpResponseMessage response = await client.GetAsync(urlWaterCommand)) using (HttpContent content = response.Content) { // ... Read the string. string result = await content.ReadAsStringAsync(); // ... Display the result. if (result != null && result.Length >= 50) { Console.WriteLine(result.Substring(0, 50) + "..."); } } } catch (Exception ex) { Console.WriteLine(ex.Message); //throw; } //} return(true); }
public async Task <bool> SendOpenCloseCommand(OpenCloseCommandDto openCloseCommandDto) { var uri = new Uri(serviceUrl + "ArduinoStations/OpenCloseCommand"); try { var content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(openCloseCommandDto), Encoding.UTF8, "application/json"); var rsp = await httpClient.PostAsync(uri, content); var cnt = await rsp.Content.ReadAsStringAsync(); return(true); } catch (Exception) { return(false); } }
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 }