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;
        }
Exemple #3
0
        public static IKeypadState CopyFrom(IKeypadState source)
        {
            var result = new ReadOnlyKeypadState();

            if (source.Buttons != null)
            {
                result.Buttons = source.Buttons.Copy();
            }

            return(result);
        }
Exemple #4
0
        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);
        }
Exemple #6
0
        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));
            }
        }
Exemple #7
0
 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());
        }
Exemple #9
0
 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;
 }
Exemple #10
0
        //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));
 }