public static ReadOnlyThermostatState FromXElement(XElement element) { IThermostatCoreState coreState = null; var coreStateNode = element.Element("ThermostatCoreState"); if (coreStateNode != null) { coreState = coreStateNode.ToThermostatCoreState(); } IThermostatFanState fanState = null; var fanStateNode = element.Element("ThermostatFanState"); if (fanStateNode != null) { fanState = fanStateNode.ToThermostatFanState(); } IThermostatSetpointCollectionState setpoints = null; var setpointsNode = element.Element("Setpoints"); if (setpointsNode != null) { setpoints = setpointsNode.ToSetpoints(); } var result = new ReadOnlyThermostatState { CoreState = coreState, FanState = fanState, SetpointStates = setpoints }; return(result); }
public static ReadOnlyThermostatSetpointCollection CopyFrom(IThermostatSetpointCollectionState source) { var result = new ReadOnlyThermostatSetpointCollection { _setpoints = source.AvailableSetpoints.ToDictionary(setpoint => setpoint, setpoint => source[setpoint]) }; return result; }
public static ReadOnlyThermostatSetpointCollection CopyFrom(IThermostatSetpointCollectionState source) { var result = new ReadOnlyThermostatSetpointCollection { _setpoints = source.AvailableSetpoints.ToDictionary(setpoint => setpoint, setpoint => source[setpoint]) }; return(result); }
public static void AssertThermostatSetpointsAreEqual(IThermostatSetpointCollectionState one, IThermostatSetpointCollectionState two) { if (one == null && two == null) { return; } AssertHelperHelper(one, two); CollectionAssert.AreEquivalent(one.AvailableSetpoints, two.AvailableSetpoints); foreach (var setpoint in one.AvailableSetpoints) { CollectionAssert.Contains(two.AvailableSetpoints, setpoint); Assert.That(one[setpoint], Is.EqualTo(two[setpoint])); } }
public static Dictionary <ThermostatSetpointType, ITemperature> ToDictionary(this IThermostatSetpointCollectionState state) { if (state == null) { return(null); } var availableSetpoints = state.AvailableSetpoints; if (availableSetpoints == null) { return(null); } var result = availableSetpoints.ToDictionary(x => x, type => state[type]); return(result); }
public static XElement ToXElement(this IThermostatSetpointCollectionState state, string nodeName = "Setpoints") { var result = new XElement(nodeName); if (state != null) { var setpoints = state.ToDictionary(); if (setpoints != null && setpoints.Count > 0) { foreach (var setpoint in setpoints.Keys) { var temperature = setpoints[setpoint]; result.Add(new XElement(setpoint.ToString(), temperature)); } } } return(result); }
public static string Describe(this IThermostatSetpointCollectionState state) { var result = new StringBuilder(); if (state == null) { return(result.ToString()); } var setpointTypes = state.AvailableSetpoints.ToList(); if (setpointTypes.Count == 0) { return(result.ToString()); } foreach (var setpointType in setpointTypes) { if (result.Length > 0) { result.Append(", "); } result.Append(setpointType); var temperature = state[setpointType]; result.Append(" at "); if (temperature == null) { result.Append("?"); } else { result.Append(temperature); } } return(result.ToString()); }
public void Update(IThermostatSetpointCollectionState state) { var originalKeys = Keys.ToList(); foreach (var key in state.AvailableSetpoints) { var value = state[key]; if (originalKeys.Contains(key)) { this[key] = value; originalKeys.Remove(key); } else { Add(key, value); } } foreach (var key in originalKeys) { Remove(key); } }
public ReadOnlyThermostatState(IThermostatCoreState coreState, IThermostatFanState fanState, IThermostatSetpointCollectionState setpointStates) { CoreState = coreState; FanState = fanState; SetpointStates = setpointStates; }
public static bool HasData(this IThermostatSetpointCollectionState state) { var result = state.AvailableSetpoints != null && state.AvailableSetpoints.Any(); return(result); }
public static ReadOnlyThermostatSetpointCollection Copy(this IThermostatSetpointCollectionState source) { return(ReadOnlyThermostatSetpointCollection.CopyFrom(source)); }
public ReadOnlyThermostatState(IThermostatCoreState coreState, IThermostatFanState fanState, IThermostatSetpointCollectionState setpointStates) { CoreState = coreState; FanState = fanState; SetpointStates = setpointStates; }