Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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());
        }