Esempio n. 1
0
        //> -- FUNCIONES
        private async Task CargarDatos(DateTime?fechaInicio = null, DateTime?fechaFin = null)
        {
            Int32.TryParse(idEstacionBase, out int id);
            nombreEstacionBase = await servicioEstacionBase.Nombre(id);

            var sensores = await servicioEstacionBase.ObtenerSensores(id);

            listaDatosTemp = new List <Tuple <string, List <double> > >();
            listaDatosHum  = new List <Tuple <string, List <double> > >();
            List <DateTime> stamps = new List <DateTime>();

            foreach (var sensor in sensores)
            {
                IEnumerable <EntidadDatoBase> datos;

                if (fechaInicio == null || fechaFin == null)
                {
                    datos = await servicioSE.ObtenerDatos(sensor.IdSensor, 10);
                }
                else
                {
                    datos = await servicioSE.ObtenerDatos(sensor.IdSensor, fechaInicio, fechaFin.Value.AddDays(1)); // FILTRAMOS POR FECHA
                }
                listaDatosTemp.Add(new Tuple <string, List <double> >(sensor.NombreSensor, datos.Select(_ => (double)_.Temperatura).ToList()));
                listaDatosHum.Add(new Tuple <string, List <double> >(sensor.NombreSensor, datos.Select(_ => (double)_.Humedad).ToList()));

                stamps.AddRange(datos.Select(_ => _.Stamp).ToList());
            }

            Labels = stamps.OrderBy(_ => _.Ticks).Distinct().Select(_ => _.ToString()).ToArray();
            StateHasChanged();
        }
        protected override async Task OnInitializedAsync()
        {
            servicioEstacionBase = FactoriaServicios.GetServicioEstacionBase();
            Int32.TryParse(idEstacionBase, out int id);
            nombreEstacionBase = await servicioEstacionBase.Nombre(id);

            listaSensores = await servicioEstacionBase.ObtenerSensores(id);

            //que pasa si la estacion base no tiene sensores -> devuelve una lista null

            foreach (EntidadSensorResultado sensor in listaSensores)
            {
                if (sensor.Fecha == default(DateTime))
                {
                    MarkerDataSource.Add(new MapMarkerDataSource {
                        latitude = Convert.ToDouble(sensor.Latitud), longitude = Convert.ToDouble(sensor.Longitud), name = sensor.NombreSensor, color = "red"
                    });
                }
                else
                {
                    MarkerDataSource.Add(new MapMarkerDataSource {
                        latitude = Convert.ToDouble(sensor.Latitud), longitude = Convert.ToDouble(sensor.Longitud), name = sensor.NombreSensor, color = "green"
                    });
                }
            }
            if (listaSensores.Count() > 0)
            {
                latitudInicial  = MarkerDataSource.ElementAt(0).latitude;
                longitudInicial = MarkerDataSource.ElementAt(0).longitude;
            }

            mapa.Refresh(); // Refrescar mapa
        }
        protected override async Task OnSecureParameterSetAsync()
        {
            if (autorizado)
            {
                Int32.TryParse(idEstacionBase, out int idEb);
                nombreEstacionBase = await servicioEstacionBase.Nombre(idEb);

                listaSensores = await servicioEstacionBase.ObtenerSensores(idEb);

                //que pasa si la estacion base no tiene sensores -> devuelve una lista null
                List <MapMarkerDataSource> marcadores = new List <MapMarkerDataSource>();
                string colorMarcador;
                foreach (EntidadSensorResultado sensor in listaSensores)
                {
                    if (sensor.Fecha == default(DateTime))
                    {
                        colorMarcador = "red";
                    }
                    else
                    {
                        colorMarcador = "green";
                    }

                    marcadores.Add(new MapMarkerDataSource {
                        latitude = Convert.ToDouble(sensor.Latitud), longitude = Convert.ToDouble(sensor.Longitud), name = sensor.NombreSensor, color = colorMarcador
                    });
                }

                MarkerDataSource.AddRange(marcadores);

                if (listaSensores.Count() > 0)
                {
                    latitudInicial  = MarkerDataSource.ElementAt(0).latitude;
                    longitudInicial = MarkerDataSource.ElementAt(0).longitude;
                }
            }
        }