Пример #1
0
        public async Task <IActionResult> Temperatures(int?sensorId, DateTime?from, DateTime?to)
        {
            var filter = new MeasurementFilter()
            {
                From     = from,
                To       = to,
                SensorId = sensorId
            };

            var result = await getTemperatureMeasurementsService.GetFilteredMeasurementsAsync(filter);

            return(Ok(result.Select(x => new { x.Temperature, x.MeasurementDateTime, SensorId = x.SensorId }).ToList()));
        }
Пример #2
0
        public void MeasurementFilterTest()
        {
            using (var ms = new MemoryStream())
            {
                var filter = new MeasurementFilter(ms);
                filter.Write(new byte[50], 0, 50);
                Assert.AreEqual(50, filter.BytesWritten);

                // BytesWritten should stay the same even after setting length.
                filter.SetLength(500);
                Assert.AreEqual(50, filter.BytesWritten);
            }
        }
Пример #3
0
        private IQueryable <TemperatureMeasurement> GetTemperatureMeasurementsQuery(MeasurementFilter filter)
        {
            var query = SmartHomeAppDbContext.Query <TemperatureMeasurement>();

            if (filter.From != null)
            {
                query = query.Where(x => x.MeasurementDateTime >= filter.From);
            }

            if (filter.To != null)
            {
                query = query.Where(x => x.MeasurementDateTime <= filter.To.Value);
            }

            if (filter.SensorId != null)
            {
                query = query.Where(x => x.SensorId == filter.SensorId.Value);
            }

            return(query);
        }
Пример #4
0
        public async Task <IList <TemperatureMeasurementModel> > GetTemperatureMeasurementsAsync(MeasurementFilter filter)
        {
            var query = GetTemperatureMeasurementsQuery(filter);

            return(await query.OrderByDescending(x => x.MeasurementDateTime)
                   .ProjectTo <TemperatureMeasurementModel>(Mapper.ConfigurationProvider)
                   .ToListAsync());
        }
Пример #5
0
        public async Task <CountedResult <TemperatureMeasurementModel> > GetTemperatureMeasurementsAsync(MeasurementFilter filter,
                                                                                                         PagingArgs?pagingArgs)
        {
            var query = GetTemperatureMeasurementsQuery(filter);

            int count = await query.CountAsync();

            query = query.OrderByDescending(x => x.MeasurementDateTime).ThenBy(x => x.Id);
            query = query.PageBy(pagingArgs);

            return(new CountedResult <TemperatureMeasurementModel>(count,
                                                                   await query.ProjectTo <TemperatureMeasurementModel>(Mapper.ConfigurationProvider).ToListAsync()));
        }