コード例 #1
0
 public DataPoint GetLastValues(string stationId, string sensorType)
 {
     using (var context = new WeatherStationDbContext(_nameOrConnectionString))
     {
         return(TryGetLatestDataPointForStationIdAndSensorType(context, stationId, sensorType));
     }
 }
コード例 #2
0
 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());
     }
 }
コード例 #3
0
        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);
        }