Example #1
0
        public async Task <WateringValue> AddWateringAsync(WateringValue watering)
        {
            var wateringCollection = _database.GetCollection <WateringValue>("watering");
            await wateringCollection.InsertOneAsync(watering);

            return(watering);
        }
        public async Task <IActionResult> Post([FromBody] SensorsInput sensorsInput)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var sensors = new SensorValues()
            {
                //DeviceTimestamp = sensorsInput.DeviceTimestamp, // TODO change to DateTime
                Temperature  = sensorsInput.Temperature.Value,
                Humidity     = sensorsInput.Humidity.Value,
                SoilMoisture = sensorsInput.SoilMoisture.Value
            };

            // save sensor values
            await _sensorRepository.AddSensorValuesAsync(sensors);

            var wateringResult = _wateringService.CalculateMilliseconds(sensors);

            // TODO move to Watering Controller
            if (wateringResult.Milliseconds > 0)
            {
                var watering = new WateringValue(sensors, wateringResult.Milliseconds);
                await _wateringRepository.AddWateringAsync(watering);
            }

            return(CreatedAtAction("Get", new { id = sensors.Id }, wateringResult));
        }