Esempio n. 1
0
        public IEnumerable <ValoresDiarios> GetAggregatesDiarios(int dispositivo, string sensorCode, DateTime desde, DateTime hasta)
        {
            var sensorDao = new SensorDAO();
            var sensor    = sensorDao.FindByCode(dispositivo, sensorCode);

            if (sensor == null)
            {
                return(new List <ValoresDiarios>(0));
            }

            ValoresDiarios valoresDiarios = null;
            var            byDate         = Projections.SqlFunction("date", NHibernateUtil.Date,
                                                                    Projections.Group <Medicion>(a => a.FechaMedicion));

            return(Session.QueryOver <Medicion>()
                   .Where(m => m.Dispositivo.Id == dispositivo && m.Sensor.Id == sensor.Id)
                   .And(m => m.FechaMedicion >= desde && m.FechaMedicion <= hasta)
                   .SelectList(x => x
                               .Select(Projections.Max <Medicion>(m => m.ValorNum1).WithAlias(() => valoresDiarios.Max))
                               .Select(Projections.Min <Medicion>(m => m.ValorNum1).WithAlias(() => valoresDiarios.Min))
                               .Select(Projections.Avg <Medicion>(m => m.ValorNum1).WithAlias(() => valoresDiarios.Avg))
                               .Select(Projections.GroupProperty(byDate).WithAlias(() => valoresDiarios.Date))
                               )
                   .OrderBy(byDate).Asc
                   .TransformUsing(Transformers.AliasToBean <ValoresDiarios>())
                   .List <ValoresDiarios>());
        }
Esempio n. 2
0
        public List <Medicion> FindList(int sensor, DateTime fechaDesde, DateTime fechaHasta)
        {
            var sen = new SensorDAO().FindById(sensor);

            return(Query
                   .Where(m => m.Sensor.Id == sensor && m.Dispositivo.Id == sen.Dispositivo.Id)
                   .Where(m => m.FechaMedicion < fechaHasta && m.FechaMedicion > fechaDesde)
                   .OrderBy(m => m.FechaMedicion)
                   .ToList());
        }
Esempio n. 3
0
//        public MedicionDAO(ISession session) : base(session) { }

        public Medicion FindLast(int sensor, DateTime fechaHasta)
        {
            var sen = new SensorDAO().FindById(sensor);

            return(Query
                   .Where(m => m.Sensor.Id == sensor && m.Dispositivo.Id == sen.Dispositivo.Id)
                   .Where(m => m.FechaMedicion < fechaHasta)
                   .OrderByDescending(m => m.FechaMedicion)
                   .FirstOrDefault());
        }
Esempio n. 4
0
        public ValoresAgregados GetAggregates(int dispositivo, string sensorCode, DateTime desde, DateTime hasta)
        {
            var sensorDao = new SensorDAO();
            var sensor    = sensorDao.FindByCode(dispositivo, sensorCode);

            if (sensor == null)
            {
                return(null);
            }

            ValoresAgregados valoresAgregados = null;

            return(Session.QueryOver <Medicion>()
                   .Where(m => m.Dispositivo.Id == dispositivo && m.Sensor.Id == sensor.Id)
                   .And(m => m.FechaMedicion >= desde && m.FechaMedicion <= hasta)
                   .Select(Projections.Max <Medicion>(m => m.ValorNum1).WithAlias(() => valoresAgregados.Max),
                           Projections.Min <Medicion>(m => m.ValorNum1).WithAlias(() => valoresAgregados.Min),
                           Projections.Avg <Medicion>(m => m.ValorNum1).WithAlias(() => valoresAgregados.Avg)
                           )
                   .TransformUsing(Transformers.AliasToBean <ValoresAgregados>())
                   .List <ValoresAgregados>()
                   .FirstOrDefault());
        }