private static void LogOnCycle(int thermostatId, Cycle cycle, Temperatures allTemperatures, OutsideConditions allConditions) { Temperatures temperatures = allTemperatures.GetRange(cycle.StartDate, cycle.EndDate); OutsideConditions conditions = allConditions.GetRange(cycle.StartDate, cycle.EndDate); Temperature previousTemperature = allTemperatures.GetByTime(cycle.StartDate); OutsideCondition previousCondition = allConditions.GetByTime(cycle.StartDate); if (previousTemperature!=null) temperatures.Insert(0, previousTemperature); if (previousCondition != null) conditions.Insert(0, previousCondition); if (conditions.Count > 0 && temperatures.Count > 0) { Snapshot s = new Snapshot(); s.StartTime = cycle.StartDate; s.Seconds = Convert.ToInt32(new TimeSpan(cycle.EndDate.Ticks - cycle.StartDate.Ticks).TotalSeconds); s.ThermostatId = thermostatId; s.Mode = cycle.CycleType; s.InsideTempAverage = Convert.ToInt32(temperatures.GetTempAverage(cycle.StartDate, cycle.EndDate)); s.InsideTempHigh = Convert.ToInt32(temperatures.GetTempHigh()); s.InsideTempLow = Convert.ToInt32(temperatures.GetTempLow()); s.OutsideTempAverage = Convert.ToInt32(conditions.GetTempAverage(cycle.StartDate, cycle.EndDate)); s.OutsideTempHigh = Convert.ToInt32(conditions.GetTempHigh()); s.OutsideTempLow = Convert.ToInt32(conditions.GetTempLow()); if (s.Seconds > 10 && s.Seconds < 86400) //if significant and less than a day { Snapshot.SaveSnapshot(s); } } }
internal static Snapshot GetSnapshot(DataRow row) { Snapshot result = new Snapshot(); if (row.Table.Columns.Contains("id")) { if (Convert.IsDBNull(row["id"])) { result._isIdNull = true; } else { result._id = Convert.ToInt32(row["id"]); result._isIdNull = false; } } if (row.Table.Columns.Contains("thermostat_id")) { if (Convert.IsDBNull(row["thermostat_id"])) { result._isThermostatIdNull = true; } else { result._thermostatId = Convert.ToInt32(row["thermostat_id"]); result._isThermostatIdNull = false; } } if (row.Table.Columns.Contains("start_time")) { if (Convert.IsDBNull(row["start_time"])) { result._isStartTimeNull = true; } else { result._startTime = Convert.ToDateTime(row["start_time"]); result._isStartTimeNull = false; } } if (row.Table.Columns.Contains("seconds")) { if (Convert.IsDBNull(row["seconds"])) { result._isSecondsNull = true; } else { result._seconds = Convert.ToInt32(row["seconds"]); result._isSecondsNull = false; } } if (row.Table.Columns.Contains("mode")) { if (Convert.IsDBNull(row["mode"])) { result._isModeNull = true; } else { result._mode = Convert.ToString(row["mode"]); result._isModeNull = false; } } if (row.Table.Columns.Contains("inside_temp_high")) { if (Convert.IsDBNull(row["inside_temp_high"])) { result._isInsideTempHighNull = true; } else { result._insideTempHigh = Convert.ToInt32(row["inside_temp_high"]); result._isInsideTempHighNull = false; } } if (row.Table.Columns.Contains("inside_temp_low")) { if (Convert.IsDBNull(row["inside_temp_low"])) { result._isInsideTempLowNull = true; } else { result._insideTempLow = Convert.ToInt32(row["inside_temp_low"]); result._isInsideTempLowNull = false; } } if (row.Table.Columns.Contains("inside_temp_average")) { if (Convert.IsDBNull(row["inside_temp_average"])) { result._isInsideTempAverageNull = true; } else { result._insideTempAverage = Convert.ToInt32(row["inside_temp_average"]); result._isInsideTempAverageNull = false; } } if (row.Table.Columns.Contains("outside_temp_high")) { if (Convert.IsDBNull(row["outside_temp_high"])) { result._isOutsideTempHighNull = true; } else { result._outsideTempHigh = Convert.ToInt32(row["outside_temp_high"]); result._isOutsideTempHighNull = false; } } if (row.Table.Columns.Contains("outside_temp_low")) { if (Convert.IsDBNull(row["outside_temp_low"])) { result._isOutsideTempLowNull = true; } else { result._outsideTempLow = Convert.ToInt32(row["outside_temp_low"]); result._isOutsideTempLowNull = false; } } if (row.Table.Columns.Contains("outside_temp_average")) { if (Convert.IsDBNull(row["outside_temp_average"])) { result._isOutsideTempAverageNull = true; } else { result._outsideTempAverage = Convert.ToInt32(row["outside_temp_average"]); result._isOutsideTempAverageNull = false; } } return result; }
public static int SaveSnapshot(Snapshot snapshot) { int result = 0; MySqlCommand cmd = new MySqlCommand("snapshots_save", ThermostatMonitorLib.Global.MySqlConnection); cmd.CommandType = CommandType.StoredProcedure; if (snapshot._isIdNull) { cmd.Parameters.AddWithValue("@id", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@id", snapshot._id); } if (snapshot._isThermostatIdNull) { cmd.Parameters.AddWithValue("@thermostat_id", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@thermostat_id", snapshot._thermostatId); } if (snapshot._isStartTimeNull) { cmd.Parameters.AddWithValue("@start_time", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@start_time", snapshot._startTime); } if (snapshot._isSecondsNull) { cmd.Parameters.AddWithValue("@seconds", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@seconds", snapshot._seconds); } if (snapshot._isModeNull) { cmd.Parameters.AddWithValue("@mode", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@mode", snapshot._mode); } if (snapshot._isInsideTempHighNull) { cmd.Parameters.AddWithValue("@inside_temp_high", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@inside_temp_high", snapshot._insideTempHigh); } if (snapshot._isInsideTempLowNull) { cmd.Parameters.AddWithValue("@inside_temp_low", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@inside_temp_low", snapshot._insideTempLow); } if (snapshot._isInsideTempAverageNull) { cmd.Parameters.AddWithValue("@inside_temp_average", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@inside_temp_average", snapshot._insideTempAverage); } if (snapshot._isOutsideTempHighNull) { cmd.Parameters.AddWithValue("@outside_temp_high", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@outside_temp_high", snapshot._outsideTempHigh); } if (snapshot._isOutsideTempLowNull) { cmd.Parameters.AddWithValue("@outside_temp_low", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@outside_temp_low", snapshot._outsideTempLow); } if (snapshot._isOutsideTempAverageNull) { cmd.Parameters.AddWithValue("@outside_temp_average", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@outside_temp_average", snapshot._outsideTempAverage); } cmd.Connection.Open(); try { result = Convert.ToInt32(cmd.ExecuteScalar()); } finally { cmd.Connection.Close(); } snapshot.Id = result; return(result); }
public static int SaveSnapshot(Snapshot snapshot) { int result = 0; MySqlCommand cmd = new MySqlCommand("snapshots_save", ThermostatMonitorLib.Global.MySqlConnection); cmd.CommandType = CommandType.StoredProcedure; if (snapshot._isIdNull) { cmd.Parameters.AddWithValue("@id", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@id", snapshot._id); } if (snapshot._isThermostatIdNull) { cmd.Parameters.AddWithValue("@thermostat_id", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@thermostat_id", snapshot._thermostatId); } if (snapshot._isStartTimeNull) { cmd.Parameters.AddWithValue("@start_time", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@start_time", snapshot._startTime); } if (snapshot._isSecondsNull) { cmd.Parameters.AddWithValue("@seconds", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@seconds", snapshot._seconds); } if (snapshot._isModeNull) { cmd.Parameters.AddWithValue("@mode", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@mode", snapshot._mode); } if (snapshot._isInsideTempHighNull) { cmd.Parameters.AddWithValue("@inside_temp_high", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@inside_temp_high", snapshot._insideTempHigh); } if (snapshot._isInsideTempLowNull) { cmd.Parameters.AddWithValue("@inside_temp_low", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@inside_temp_low", snapshot._insideTempLow); } if (snapshot._isInsideTempAverageNull) { cmd.Parameters.AddWithValue("@inside_temp_average", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@inside_temp_average", snapshot._insideTempAverage); } if (snapshot._isOutsideTempHighNull) { cmd.Parameters.AddWithValue("@outside_temp_high", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@outside_temp_high", snapshot._outsideTempHigh); } if (snapshot._isOutsideTempLowNull) { cmd.Parameters.AddWithValue("@outside_temp_low", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@outside_temp_low", snapshot._outsideTempLow); } if (snapshot._isOutsideTempAverageNull) { cmd.Parameters.AddWithValue("@outside_temp_average", System.DBNull.Value); } else { cmd.Parameters.AddWithValue("@outside_temp_average", snapshot._outsideTempAverage); } cmd.Connection.Open(); try { result = Convert.ToInt32(cmd.ExecuteScalar()); } finally { cmd.Connection.Close(); } snapshot.Id = result; return result; }
internal static Snapshot GetSnapshot(DataRow row) { Snapshot result = new Snapshot(); if (row.Table.Columns.Contains("id")) { if (Convert.IsDBNull(row["id"])) { result._isIdNull = true; } else { result._id = Convert.ToInt32(row["id"]); result._isIdNull = false; } } if (row.Table.Columns.Contains("thermostat_id")) { if (Convert.IsDBNull(row["thermostat_id"])) { result._isThermostatIdNull = true; } else { result._thermostatId = Convert.ToInt32(row["thermostat_id"]); result._isThermostatIdNull = false; } } if (row.Table.Columns.Contains("start_time")) { if (Convert.IsDBNull(row["start_time"])) { result._isStartTimeNull = true; } else { result._startTime = Convert.ToDateTime(row["start_time"]); result._isStartTimeNull = false; } } if (row.Table.Columns.Contains("seconds")) { if (Convert.IsDBNull(row["seconds"])) { result._isSecondsNull = true; } else { result._seconds = Convert.ToInt32(row["seconds"]); result._isSecondsNull = false; } } if (row.Table.Columns.Contains("mode")) { if (Convert.IsDBNull(row["mode"])) { result._isModeNull = true; } else { result._mode = Convert.ToString(row["mode"]); result._isModeNull = false; } } if (row.Table.Columns.Contains("inside_temp_high")) { if (Convert.IsDBNull(row["inside_temp_high"])) { result._isInsideTempHighNull = true; } else { result._insideTempHigh = Convert.ToInt32(row["inside_temp_high"]); result._isInsideTempHighNull = false; } } if (row.Table.Columns.Contains("inside_temp_low")) { if (Convert.IsDBNull(row["inside_temp_low"])) { result._isInsideTempLowNull = true; } else { result._insideTempLow = Convert.ToInt32(row["inside_temp_low"]); result._isInsideTempLowNull = false; } } if (row.Table.Columns.Contains("inside_temp_average")) { if (Convert.IsDBNull(row["inside_temp_average"])) { result._isInsideTempAverageNull = true; } else { result._insideTempAverage = Convert.ToInt32(row["inside_temp_average"]); result._isInsideTempAverageNull = false; } } if (row.Table.Columns.Contains("outside_temp_high")) { if (Convert.IsDBNull(row["outside_temp_high"])) { result._isOutsideTempHighNull = true; } else { result._outsideTempHigh = Convert.ToInt32(row["outside_temp_high"]); result._isOutsideTempHighNull = false; } } if (row.Table.Columns.Contains("outside_temp_low")) { if (Convert.IsDBNull(row["outside_temp_low"])) { result._isOutsideTempLowNull = true; } else { result._outsideTempLow = Convert.ToInt32(row["outside_temp_low"]); result._isOutsideTempLowNull = false; } } if (row.Table.Columns.Contains("outside_temp_average")) { if (Convert.IsDBNull(row["outside_temp_average"])) { result._isOutsideTempAverageNull = true; } else { result._outsideTempAverage = Convert.ToInt32(row["outside_temp_average"]); result._isOutsideTempAverageNull = false; } } return(result); }