Example #1
0
        public string Insertar([FromBody] Lecturas _lectura)
        {
            //Si no existe la entidad no deberia poder grabar lecturas
            if (data.GetDocument("id",_lectura.id_entidad,"Entidades").Elements.ToList()[0].Name == "_code")
            {
                return JObject.Parse("{\"return\":\"No se pueden anexar lecturas de una entidad no registrada\"}").ToString();
            }

            //Update UltimasLecturas
            IMongoCollection<BsonDocument> collection = data.GetCollection("UltimasLecturas");
            data.UpdateDocument(collection,"_id", _lectura.id_entidad, "temp", _lectura.temperatura);
            data.UpdateDocument(collection,"_id", _lectura.id_entidad, "hum", _lectura.humedad);

            //Activar/Desactivar Riego/Ventailacion
            JObject _entidad = JObject.Parse(data.GetDocsWithProjection("Entidades", new string[]{"_id"}, "id_entidad", _lectura.id_entidad).First().ToJson());
            
            SensoresController _sense_data = new SensoresController();
            var _param = JObject.Parse(_sense_data.Parametros(_lectura.id_entidad).ToString()).GetValue("sensores");
            double tmax = double.Parse(_param.SelectToken("temp.max").ToString());
            double tmin = double.Parse(_param.SelectToken("temp.min").ToString());
            double hmax = double.Parse(_param.SelectToken("hum.max").ToString());
            double hmin = double.Parse(_param.SelectToken("hum.min").ToString());
            
            //Obtener parametros actuales de entidad
            JToken _reactoresEntidad = _entidad.GetValue("reactores");
            bool _riegoCurrentState = bool.Parse(JObject.Parse(_reactoresEntidad.First().ToString()).GetValue("estado").ToString());
            bool _ventilacionCurrentState = bool.Parse(JObject.Parse(_reactoresEntidad.Last().ToString()).GetValue("estado").ToString());
            IPAddress ipReactor = IPAddress.Parse(JObject.Parse(_reactoresEntidad.First().ToString()).GetValue("ip_reactor").ToString());