Exemple #1
0
            public void SetLineChartData()
            {
                //Suppose we have a list of 60 items.

                using (ActiveSenseContext dbActiveContext = new ActiveSenseContext(ConfigurationManager.ConnectionStrings["TempsenseConnection"].ConnectionString))
                {
                    var lista = (from p in dbActiveContext.Medidas
                                 orderby p.FechaHora descending
                                 select p
                                 ).ToList();

                    lineChartData = dbActiveContext.Medidas.Select(p => p.Valor).Cast <int>().ToArray();
                    hora          = dbActiveContext.Medidas.Select(p => p.FechaHora).Cast <string>().ToArray();
                }
            }
Exemple #2
0
        public static string obtenerDispositivoAsociados(string idUser)
        {
            string idDispositivos = "";

            if (idUser != "")
            {
                using (ActiveSenseContext context = new ActiveSenseContext(ConfigurationManager.ConnectionStrings["TempsenseConnection"].ConnectionString))
                {
                    AspNetUsers usuario = context.UsuariosASP.Find(idUser);
                    var         list    = context.Dispositivos.Where(u => u.EmpresaID == usuario.EmpresaID);
                    idDispositivos = string.Join(",", list.Select(item => item.DispositivoID));
                }
            }
            return(idDispositivos);
        }
        public int obtenerEmpresasAsociadas(string id, ActiveSenseContext contextT = null)
        {
            int idEmpresa = 0;

            if (id != "")
            {
                ActiveSenseContext contextDB = contextT != null ? contextT : dbActiveContext;
                AspNetUsers        usuario   = contextDB.UsuariosASP.Find(id);
                if (usuario.EmpresaID != 0)
                {
                    idEmpresa = usuario.EmpresaID;
                }
            }
            return(idEmpresa);
        }
Exemple #4
0
        public Task ProcessEventsAsync(PartitionContext context, IEnumerable <EventData> messages)
        {
            List <ActiveSense.Tempsense.model.Modelo.Medida> medidas = new List <ActiveSense.Tempsense.model.Modelo.Medida>();

            foreach (EventData eventData in messages)
            {
                string strConn = string.Format(ConfigurationManager.ConnectionStrings["TempsenseConnection"].ConnectionString, eventData.Properties["Ambiente"]);
                messageCount++;
                string  data      = Encoding.UTF8.GetString(eventData.GetBytes());
                JObject o         = JObject.Parse(data);
                var     deviceKey = int.Parse(o["deviceKey"].ToString());

                using (ActiveSenseContext db = new ActiveSenseContext(strConn))
                {
                    try
                    {
                        var disp = db.Dispositivos
                                   .Where(p => p.DispositivoID == deviceKey);
                        if (disp.ToList().Count > 0)
                        {
                            ActiveSense.Tempsense.model.Modelo.Medida medida = new ActiveSense.Tempsense.model.Modelo.Medida()
                            {
                                DispositivoID = disp.FirstOrDefault().DispositivoID,
                                Valor         = decimal.Parse(o["valor"].ToString()),
                                FechaHora     = Convert.ToDateTime(o["fecha"].ToString()),
                            };
                            Console.WriteLine(string.Format("Message received. Partition:{0}, Data:{1}{2}", context.Lease.PartitionId, data, eventData.EnqueuedTimeUtc));
                            db.Medidas.Add(medida);
                            db.SaveChanges();
                        }
                        else
                        {
                            Console.WriteLine(string.Format("Device Key not found in database:{0}, Message:{1}", o["deviceKey"].ToString(), o));
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(string.Format("Mensaje tuvo error:{0},{1}", ex.Message, data));
                    }
                }
            }


            //if (messageCount > Configuracion.TamanoLoteMensajes)
            context.CheckpointAsync();
            return(Task.FromResult <object>(null));
        }
        public string obtenerDispositivosAsociados(string id, ActiveSenseContext context = null)
        {
            string idDispositivos = "";

            if (id != "")
            {
                ActiveSenseContext contextDB = context != null ? context : dbActiveContext;
                AspNetUsers        usuario   = contextDB.UsuariosASP.Find(id);

                if (usuario.EmpresaID != 0)
                {
                    var list = contextDB.Dispositivos.Where(u => u.EmpresaID == usuario.EmpresaID);
                    idDispositivos = string.Join(",", list.Select(item => item.DispositivoID));
                }
            }
            return(idDispositivos);
        }
Exemple #6
0
            public void TakeLastTemp(string idUsuario)
            {
                List <DashboardTemperatureResult> lis = new List <DashboardTemperatureResult>();

                try
                {
                    using (ActiveSenseContext context = new ActiveSenseContext(ConfigurationManager.ConnectionStrings["TempsenseConnection"].ConnectionString))
                    {
                        // metodo que permite validar si un usuario es de perfil administrador  o no y buscar los datos segun esto.
                        string perfil = userHelper.obtenerPerfil(idUsuario);

                        int IdEmpresa = userHelper.obtenerEmpresasAsociadas(idUsuario, context);
                        var result    = context.Empresas.Where(u => u.EmpresaID == IdEmpresa).Include("Dispositivos.Medidas").ToList();
                        if (PERFIL_ADMINISTRADOR == perfil)
                        {
                            result = context.Empresas.Include("Dispositivos.Medidas").ToList();
                        }

                        foreach (var item in result.SelectMany(x => x.Dispositivos))
                        {
                            if (item.Medidas.OrderBy(y => y.FechaHora).Any())
                            {
                                decimal MaxTemp = 0;
                                decimal MinTemp = 0;
                                decimal MaxTol  = 0;
                                decimal MinTol  = 0;
                                try
                                {
                                    MaxTemp = context.Umbrals.ToList().Where(p => p.DispositivoID == item.DispositivoID).FirstOrDefault().Temperatura_max;
                                    MinTemp = context.Umbrals.ToList().Where(p => p.DispositivoID == item.DispositivoID).FirstOrDefault().Temperatura_min;
                                }
                                catch (Exception ex)
                                {
                                    Debug.WriteLine("ERROR chartBroadcaster.cs umbrales temperatura.");
                                    Debug.WriteLine(ex.GetBaseException().ToString());
                                }
                                try {
                                    MaxTol = context.Umbrals.ToList().Where(p => p.DispositivoID == item.DispositivoID).FirstOrDefault().Tolerancia_max;
                                    MinTol = context.Umbrals.ToList().Where(p => p.DispositivoID == item.DispositivoID).FirstOrDefault().Tolerancia_min;
                                }
                                catch (Exception ex) {
                                    Debug.WriteLine("ERROR chartBroadcaster.cs umbrales tolerancia.");
                                    Debug.WriteLine(ex.GetBaseException().ToString());
                                }
                                finally
                                {
                                    lis.Add(new DashboardTemperatureResult
                                    {
                                        DispositivoId     = item.Medidas.OrderBy(y => y.FechaHora).LastOrDefault().DispositivoID,
                                        Empresa           = item.Medidas.OrderBy(y => y.FechaHora).LastOrDefault().Dispositivo.Empresa.AbrEmpresa,
                                        Temperature       = item.Medidas.OrderBy(y => y.FechaHora).LastOrDefault().Valor,
                                        Max               = MaxTemp,
                                        Min               = MinTemp,
                                        NombreDispositivo = context.Dispositivos.Where(p => p.DispositivoID == item.DispositivoID).FirstOrDefault().Nombre,
                                        MaxTolerancia     = MaxTol,
                                        MinTolerancia     = MinTol,
                                        TipoMedida        = item.TipoMedida.Nombre
                                    });
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("ERROR chartBroadcaster.cs");
                    Debug.WriteLine(ex.GetBaseException().ToString());
                }
                temp = lis;
            }