public DataPoint GetLastValues(string stationId, string sensorType) { using (var context = new WeatherStationDbContext(_nameOrConnectionString)) { return(TryGetLatestDataPointForStationIdAndSensorType(context, stationId, sensorType)); } }
public List <DataPoint> GetLastValues(string stationId) { using (var context = new WeatherStationDbContext(_nameOrConnectionString)) { return(SensorDetails .GetSensorTypeValues() .Select(sensorType => TryGetLatestDataPointForStationIdAndSensorType(context, stationId, sensorType)) .Where(dp => dp != null) .ToList()); } }
private static DataPoint TryGetLatestDataPointForStationIdAndSensorType( WeatherStationDbContext context, string stationId, string sensorType) { const string sql = @"SELECT TOP 1 * FROM DataPoints WHERE StationId = @stationId AND SensorType = @sensorType ORDER BY SensorTimestampUtc DESC"; var dataPoint = context.DataPoints .SqlQuery(sql, new SqlParameter("stationId", stationId), new SqlParameter("sensorType", sensorType)) .FirstOrDefault(); return(dataPoint); }