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())); }
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); } }
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); }
public async Task <IList <TemperatureMeasurementModel> > GetTemperatureMeasurementsAsync(MeasurementFilter filter) { var query = GetTemperatureMeasurementsQuery(filter); return(await query.OrderByDescending(x => x.MeasurementDateTime) .ProjectTo <TemperatureMeasurementModel>(Mapper.ConfigurationProvider) .ToListAsync()); }
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())); }