public static IKeypadState Changes(this IKeypadState newState, IKeypadState oldState) { var buttons = newState.Buttons.Changes(oldState == null ? new IKeypadButtonState[0] : oldState.Buttons); var result = new ReadOnlyKeypadState(buttons); return(result); }
public static IKeypadState Changes(this IKeypadState newState, IKeypadState oldState) { var buttons = newState.Buttons.Changes(oldState == null ? new IKeypadButtonState[0] : oldState.Buttons); var result = new ReadOnlyKeypadState(buttons); return result; }
public static IKeypadState CopyFrom(IKeypadState source) { var result = new ReadOnlyKeypadState(); if (source.Buttons != null) { result.Buttons = source.Buttons.Copy(); } return(result); }
public static IKeypadState CopyFrom(IKeypadState source) { var result = new ReadOnlyKeypadState(); if (source.Buttons != null) { result.Buttons = source.Buttons.Copy(); } return result; }
public static XElement ToXElement(this IKeypadState state, string nodeName = "Keypad") { var result = new XElement(nodeName); if (state.Buttons != null) { var elements = state.Buttons.Select(x => x.ToXElement()); foreach (var element in elements) { result.AddIfHasData(element); } } return(result); }
public static void AssertKeypadEqual(IKeypadState one, IKeypadState two) { if (one == null && two == null) { return; } AssertHelperHelper(one, two); Assert.That(one.Buttons.Count(), Is.EqualTo(two.Buttons.Count())); foreach (var buttonOne in one.Buttons) { var buttonTwo = two.Buttons.FirstOrDefault(x => x.Id == buttonOne.Id); Assert.That(buttonTwo, Is.Not.Null); Assert.That(buttonOne.Pressed, Is.EqualTo(buttonTwo.Pressed)); } }
public ReadOnlyDeviceState(string name, string address, ILocation location, INetwork network, bool?isConnected, DeviceType type, string currentAction, IBinarySwitchState toggleSwitchState, IMultilevelSwitchState dimmerSwitchState, IColorSwitchState colorSwitchState, IBinarySensorState binarySensorState, IMultilevelSensorState <IPower> powerSensorState, IMultilevelSensorState <ITemperature> temperatureSensorState, IMultilevelSensorState <IHumidity> humiditySensorState, IMultilevelSensorState <IIlluminance> illuminanceSensorState, IThermostatState thermostatState, IKeypadState keypadState) { Name = name; Address = address; Location = location; NetworkState = network; IsConnected = isConnected; Type = type; CurrentAction = currentAction; BinarySwitchState = toggleSwitchState; MultilevelSwitchState = dimmerSwitchState; ColorSwitchState = colorSwitchState; BinarySensorState = binarySensorState; PowerSensorState = powerSensorState; TemperatureSensorState = temperatureSensorState; HumiditySensorState = humiditySensorState; IlluminanceSensorState = illuminanceSensorState; ThermostatState = thermostatState; KeypadState = keypadState; }
public static string Describe(this IKeypadState state) { var result = new StringBuilder(); if (state == null) { return(result.ToString()); } if (state.Buttons != null) { var buttons = state.Buttons.Describe(); if (buttons != null) { result.Append(buttons); } } return(result.ToString()); }
public ReadOnlyDeviceState(string name, string address, ILocation location, INetwork network, bool? isConnected, DeviceType type, string currentAction, IBinarySwitchState toggleSwitchState, IMultilevelSwitchState dimmerSwitchState, IColorSwitchState colorSwitchState, IBinarySensorState binarySensorState, IMultilevelSensorState<IPower> powerSensorState, IMultilevelSensorState<ITemperature> temperatureSensorState, IMultilevelSensorState<IHumidity> humiditySensorState, IMultilevelSensorState<IIlluminance> illuminanceSensorState, IThermostatState thermostatState, IKeypadState keypadState) { Name = name; Address = address; Location = location; NetworkState = network; IsConnected = isConnected; Type = type; CurrentAction = currentAction; BinarySwitchState = toggleSwitchState; MultilevelSwitchState = dimmerSwitchState; ColorSwitchState = colorSwitchState; BinarySensorState = binarySensorState; PowerSensorState = powerSensorState; TemperatureSensorState = temperatureSensorState; HumiditySensorState = humiditySensorState; IlluminanceSensorState = illuminanceSensorState; ThermostatState = thermostatState; KeypadState = keypadState; }
//TODO: unit test this public static ReadOnlyDeviceState FromXElement(XElement element) { var name = element.GetAttributeStringValue("Name"); var notes = element.GetAttributeStringValue("Notes"); var address = element.GetAttributeStringValue("Address"); var isConnected = element.GetAttributeBoolValue("IsConnected"); var type = element.GetAttributeStringValue("Type"); var currentAction = element.GetAttributeStringValue("CurrentAction"); var locationName = element.GetAttributeStringValue("Location"); IBinarySwitchState toggleSwitch = null; var toggleSwitchElement = element.Element("ToggleSwitch"); if (toggleSwitchElement != null) { toggleSwitch = toggleSwitchElement.ToToggleSwitch(); } IMultilevelSwitchState dimmerSwitch = null; var dimmerSwitchElement = element.Element("DimmerSwitch"); if (dimmerSwitchElement != null) { dimmerSwitch = dimmerSwitchElement.ToDimmerSwitch(); } IColorSwitchState colorSwitch = null; var colorSwitchElement = element.Element("ColorSwitch"); if (colorSwitchElement != null) { colorSwitch = colorSwitchElement.ToColorSwitch(); } IBinarySensorState binarySensor = null; var binarySensorElement = element.Element("BinarySensor"); if (binarySensorElement != null) { binarySensor = binarySensorElement.ToBinarySensor(); } ReadOnlyMultilevelSensorState <IPower> powerSensor = null; var powerSensorElement = element.Element("PowerSensor"); if (powerSensorElement != null) { powerSensor = powerSensorElement.ToMultilevelSensor <IPower>(); } ReadOnlyMultilevelSensorState <ITemperature> temperatureSensor = null; var temperatureSensorElement = element.Element("TemperatureSensor"); if (temperatureSensorElement != null) { temperatureSensor = temperatureSensorElement.ToMultilevelSensor <ITemperature>(); } ReadOnlyMultilevelSensorState <IHumidity> humiditySensor = null; var humiditySensorElement = element.Element("HumiditySensor"); if (humiditySensorElement != null) { humiditySensor = humiditySensorElement.ToMultilevelSensor <IHumidity>(); } ReadOnlyMultilevelSensorState <IIlluminance> illuminanceSensor = null; var illuminanceSensorElement = element.Element("IlluminanceSensor"); if (illuminanceSensorElement != null) { illuminanceSensor = illuminanceSensorElement.ToMultilevelSensor <IIlluminance>(); } IThermostatState thermostat = null; var thermostatElement = element.Element("Thermostat"); if (thermostatElement != null) { thermostat = thermostatElement.ToThermostat(); } IKeypadState keypad = null; var keypadElement = element.Element("Keypad"); if (keypadElement != null) { keypad = keypadElement.ToKeypad(); } var result = new ReadOnlyDeviceState { Name = name, Address = address, Location = new Location(locationName), IsConnected = isConnected, Type = DeviceType.GetTypeFromString(type), CurrentAction = currentAction, BinarySwitchState = toggleSwitch, MultilevelSwitchState = dimmerSwitch, ColorSwitchState = colorSwitch, BinarySensorState = binarySensor, PowerSensorState = powerSensor, TemperatureSensorState = temperatureSensor, HumiditySensorState = humiditySensor, IlluminanceSensorState = illuminanceSensor, ThermostatState = thermostat, KeypadState = keypad }; return(result); }
public static IKeypadState Copy(this IKeypadState state) { return(ReadOnlyKeypadState.CopyFrom(state)); }