public async Task <bool> InsertaPeticion(EntidadPeticion entidadPeticion)
        {
            if (entidadPeticion == null)
            {
                return(false);
            }

            string nombreProyecto     = entidadPeticion.Proyecto;
            string nombreEstacionBase = entidadPeticion.EstacionBase;
            string nombreSensor       = entidadPeticion.Sensor;

            int  estacionId = -1, sensorId = -1;
            bool result = true; //booleano para saber si ha ocurrido un error durante la insercion de datos

            try
            {
                //obtenemos los datos: id de la estacion e id del sensor
                estacionId = await repositorioEstacion.ObtenerId(nombreProyecto, nombreEstacionBase);

                sensorId = await repositorioSensor.ObtenerId(nombreSensor, estacionId);

                if (estacionId != -1 && sensorId != -1)
                {
                    foreach (EntidadDatoBase datoBase in entidadPeticion.Datos)
                    {
                        var dato = new EntidadDato();

                        dato.Stamp       = datoBase.Stamp;
                        dato.Humedad     = datoBase.Humedad;
                        dato.Temperatura = datoBase.Temperatura;
                        dato.FK_IdSensor = sensorId;

                        result = (result && await repositorioSensor.InsertaDato(dato)); //si falla alguna da false
                    }
                }
                else
                {
                    if (estacionId == -1)
                    {
                        log.Warning($"ERR. SERVICIO INSERTA INFORMACION (InsertaPeticion) -  No existe la estacion '{nombreEstacionBase}' en la base de datos");
                    }

                    if (sensorId == -1)
                    {
                        log.Warning($"ERR. SERVICIO INSERTA INFORMACION (InsertaPeticion) - No existe el sensor {sensorId} en la base de datos");
                    }
                    result = false;
                }
            }
            catch (Exception ex)
            {
                log.Error($"ERR. SERVICIO INSERTA INFORMACION (InsertaPeticion) -{ex.Message}");
                result = false;
            }

            return(result);
        }
Example #2
0
        public async Task <int> ObtenerId(string nombreSensor, int idEstacionBase)
        {
            int resultado;// = -1;

            try
            {
                resultado = await repositorioSensor.ObtenerId(nombreSensor, idEstacionBase);
            }
            catch (Exception ex)
            {
                //Console.WriteLine(ex.Message);
                log.Error($"ERR. SERVICIO SENSOR (ObtenerId) - {ex.Message}");
                resultado = -1;
            }

            return(resultado);
        }