internal IEnumerable <RebootLogRecord> GetRebootLog(int numberOfRecords) { var records = new List <RebootLogRecord>(); var selectCommand = new SqlCommandInfo( $@"SELECT TOP {numberOfRecords} reboot_time, uptime FROM ( SELECT origin_datetime AS reboot_time, uptime, LAG(uptime) OVER(ORDER BY origin_datetime DESC) AS next_uptime FROM DiagnosticInfoLog ) subq WHERE uptime > next_uptime" ); SqlExecutionHelper.ExecuteReader( selectCommand, row => { DateTime rebootDateTime = row.GetDateTime(row.GetOrdinal("reboot_time")); long uptime = row.GetInt64(row.GetOrdinal("uptime")); records.Add(new RebootLogRecord(rebootDateTime, uptime)); }); return(records); }
public IEnumerable <DeviceControlOptionsRecord> GetDeviceControlOptions() { var records = new List <DeviceControlOptionsRecord>(); var selectCommand = new SqlCommandInfo( "SELECT" + " device," + " current_state," + " use_schedule," + " target_state " + " FROM DeviceStates"); SqlExecutionHelper.ExecuteReader( selectCommand, row => { var device = row.GetFieldValue <Devices>("device"); var useSchedule = row.GetFieldValue <bool>("use_schedule"); var record = new DeviceControlOptionsRecord(device, useSchedule) { CurrentState = row.GetFieldValue <DeviceStates?>("current_state"), TargetState = row.GetFieldValue <DeviceStates?>("target_state") }; records.Add(record); }); return(records); }
private IEnumerable <DeviceStateLogRecord> getDeviceStateLog(SqlCommandText whereClause) { var records = new List <DeviceStateLogRecord>(); var selectCommand = new SqlCommandInfo( "SELECT" + " switch_datetime," + " device," + " state" + " FROM DeviceStateLog" + (whereClause.IsEmpty ? string.Empty : " WHERE " + whereClause.CommandText) + " ORDER BY switch_datetime DESC"); selectCommand.AddParameters(whereClause); SqlExecutionHelper.ExecuteReader( selectCommand, row => { DateTime datetime = row.GetDateTime(row.GetOrdinal("switch_datetime")); var device = (Devices)row.GetInt16(row.GetOrdinal("device")); var state = (DeviceStates)row.GetInt16(row.GetOrdinal("state")); records.Add(new DeviceStateLogRecord(datetime, device, state)); }); return(records); }
private IEnumerable <TemperatureLogRecord> getTemperatureChartData(SqlCommandText whereClause) { var data = new List <TemperatureLogRecord>(); var selectCommand = new SqlCommandInfo("SELECT origin_datetime, temperature FROM TemperatureLog"); if (!whereClause.IsEmpty) { selectCommand.CommandText += " WHERE " + whereClause.CommandText; selectCommand.AddParameters(whereClause); } SqlExecutionHelper.ExecuteReader( selectCommand, row => { DateTime datetime = row.GetDateTime(row.GetOrdinal("origin_datetime")); decimal temperature = row.GetDecimal(row.GetOrdinal("temperature")); data.Add(new TemperatureLogRecord(datetime, temperature)); }); return(data.ToArray()); }