/// <summary> /// Gets the last temperature reading for all devices /// </summary> /// <returns></returns> public IEnumerable <DeviceTemperatureReadings> GetDevicesLastTemperatureReading() { try { List <DeviceTemperatureReadings> readings = new List <DeviceTemperatureReadings>(); var devices = DeviceFactory.Instance.Devices; foreach (var device in devices) { try { // get's the next list item from the head for this device id string json = redisCache.ListRange(device.DeviceId, 0, 1)[0]; var reading = Newtonsoft.Json.JsonConvert.DeserializeObject <TemperatureReading>(json); DeviceTemperatureReadings deviceReading = new DeviceTemperatureReadings(); deviceReading.Device = device; deviceReading.TemperatureReadings = new List <TemperatureReading>(); deviceReading.TemperatureReadings.Add(reading); readings.Add(deviceReading); } catch { } } return(readings); } catch (Exception ex) { return(null); } }
/// <summary> /// Gets the most recent temperature readings for each device. /// </summary> /// <param name="count"></param> /// <returns></returns> public List <DeviceTemperatureReadings> GetDevicesTemperatureReadings(int count) { // get the earliest time to return data for List <DeviceTemperatureReadings> readings = new List <DeviceTemperatureReadings>(); var devices = DeviceFactory.Instance.Devices; foreach (var device in devices) { DeviceTemperatureReadings tempList = new DeviceTemperatureReadings(); tempList.Device = device; // get's the next list item from the head for this device id var array = redisCache.ListRange(device.DeviceId, 0, count - 1); List <TemperatureReading> list = new List <TemperatureReading>(); foreach (var s in array) { try { var o = JsonConvert.DeserializeObject <TemperatureReading>(s); list.Add(o); } catch { } } tempList.TemperatureReadings = (from l in list orderby l.Time select l).ToList(); readings.Add(tempList); } return(readings); }