public Sensor GetSensor(string MacAddress) { SensorDataController sdc = new SensorDataController(); SensorData sd = sdc.GetSensorData(MacAddress); Sensor sensor = null; using (SqlConnection conn = new SqlConnection(connString)) { conn.Open(); string sqlString = "SELECT * FROM Sensors WHERE MacAddress = '" + MacAddress + "'"; SqlCommand cmd = new SqlCommand(sqlString, conn); SqlDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { sensor = new Sensor { MacAddress = reader[0].ToString(), Name = reader[1].ToString(), LimitUp = Convert.ToDouble(reader[2]), LimitLow = Convert.ToDouble(reader[3]), FK_UserId = Convert.ToInt32(reader[4]), Data = sd }; } } reader.Close(); } return(sensor); }
public Watering CheckWatering(string mac) { // make sensor obj Sensor sensor = sensorController.GetSensor(mac); // make sensorData obj SensorData sensorData = sensorDataController.GetSensorData(mac); // Get User User user = userController.GetUserGeo(sensor.FK_UserId); Watering wat = new Watering(); wat.Port = sensorController.GetPort(mac).Port; if (sensorData.Humidity < sensor.LimitLow) { userController.UpdateWaterCount(user.Id); wat.Water = 1; return(wat); //return true; } else if (sensorData.Humidity < sensor.LimitUp) { // Generate Weathermodels weatherAPI = new WeatherAPI(user.Lat, user.Lon); WeatherModel weatherModel = weatherAPI.GetForecast(); double incommingRain = 0; for (int i = 0; i < threeHourIntervals; i++) { incommingRain += weatherModel.list[i].rain._3h; } if (incommingRain <= rainRequirementInMM) { userController.UpdateWaterCount(user.Id); wat.Water = 1; return(wat); } } wat.Water = 0; return(wat); }