public static IRollerShutter ConnectWith( this IRollerShutter rollerShutter, IButton upButton, IButton downButton, IMessageBrokerService messageBroker) { if (rollerShutter == null) { throw new ArgumentNullException(nameof(rollerShutter)); } if (upButton == null) { throw new ArgumentNullException(nameof(upButton)); } if (downButton == null) { throw new ArgumentNullException(nameof(downButton)); } if (messageBroker == null) { throw new ArgumentNullException(nameof(messageBroker)); } upButton.CreatePressedShortTrigger(messageBroker).Attach(() => HandleBlindButtonPressedEvent(rollerShutter, VerticalMovingStateValue.MovingUp)); downButton.CreatePressedShortTrigger(messageBroker).Attach(() => HandleBlindButtonPressedEvent(rollerShutter, VerticalMovingStateValue.MovingDown)); return(rollerShutter); }
public static IRollerShutter ConnectWith(this IRollerShutter rollerShutter, RollerShutterButtons buttons) { if (rollerShutter == null) { throw new ArgumentNullException(nameof(rollerShutter)); } if (buttons == null) { throw new ArgumentNullException(nameof(buttons)); } buttons.Up.GetPressedShortlyTrigger().Attach(() => HandleBlindButtonPressedEvent(rollerShutter, RollerShutterButtonDirection.Up)); buttons.Down.GetPressedShortlyTrigger().Attach(() => HandleBlindButtonPressedEvent(rollerShutter, RollerShutterButtonDirection.Down)); return(rollerShutter); }
private static void HandleBlindButtonPressedEvent(IRollerShutter rollerShutter, RollerShutterButtonDirection direction) { if (direction == RollerShutterButtonDirection.Up && rollerShutter.GetState() == RollerShutterState.MovingUp) { rollerShutter.SetState(RollerShutterState.Stopped); } else if (direction == RollerShutterButtonDirection.Down && rollerShutter.GetState() == RollerShutterState.MovingDown) { rollerShutter.SetState(RollerShutterState.Stopped); } else if (direction == RollerShutterButtonDirection.Down) { rollerShutter.SetState(RollerShutterState.MovingDown); } else if (direction == RollerShutterButtonDirection.Up) { rollerShutter.SetState(RollerShutterState.MovingUp); } else { throw new InvalidOperationException(); } }
public static IRollerShutter ConnectWith( this IRollerShutter rollerShutter, IButton upButton, IButton downButton) { if (rollerShutter == null) { throw new ArgumentNullException(nameof(rollerShutter)); } if (upButton == null) { throw new ArgumentNullException(nameof(upButton)); } if (downButton == null) { throw new ArgumentNullException(nameof(downButton)); } upButton.GetPressedShortlyTrigger().Attach(() => HandleBlindButtonPressedEvent(rollerShutter, RollerShutterStateId.MovingUp)); downButton.GetPressedShortlyTrigger().Attach(() => HandleBlindButtonPressedEvent(rollerShutter, RollerShutterStateId.MovingDown)); return(rollerShutter); }
private static void HandleBlindButtonPressedEvent(IRollerShutter rollerShutter, NamedComponentState direction) { if (direction == RollerShutterStateId.MovingUp && rollerShutter.GetState() == RollerShutterStateId.MovingUp) { rollerShutter.SetState(RollerShutterStateId.Off); } else if (direction == RollerShutterStateId.MovingDown && rollerShutter.GetState() == RollerShutterStateId.MovingDown) { rollerShutter.SetState(RollerShutterStateId.Off); } else if (direction == RollerShutterStateId.MovingDown) { rollerShutter.SetState(RollerShutterStateId.MovingDown); } else if (direction == RollerShutterStateId.MovingUp) { rollerShutter.SetState(RollerShutterStateId.MovingUp); } else { throw new InvalidOperationException(); } }
private static void HandleBlindButtonPressedEvent(IRollerShutter rollerShutter, VerticalMovingStateValue verticalMovingState) { if (verticalMovingState == VerticalMovingStateValue.MovingUp && rollerShutter.GetState().Has(VerticalMovingState.MovingUp)) { rollerShutter.ExecuteCommand(new TurnOffCommand()); } else if (verticalMovingState == VerticalMovingStateValue.MovingDown && rollerShutter.GetState().Has(VerticalMovingState.MovingDown)) { rollerShutter.ExecuteCommand(new TurnOffCommand()); } else if (verticalMovingState == VerticalMovingStateValue.MovingDown) { rollerShutter.ExecuteCommand(new MoveDownCommand()); } else if (verticalMovingState == VerticalMovingStateValue.MovingUp) { rollerShutter.ExecuteCommand(new MoveUpCommand()); } else { throw new InvalidOperationException(); } }
private static void HandleBlindButtonPressedEvent(IRollerShutter rollerShutter, ComponentState direction) { if (direction.Equals(RollerShutterStateId.MovingUp) && rollerShutter.GetState().Equals(RollerShutterStateId.MovingUp)) { rollerShutter.SetState(RollerShutterStateId.Off); } else if (direction.Equals(RollerShutterStateId.MovingDown) && rollerShutter.GetState().Equals(RollerShutterStateId.MovingDown)) { rollerShutter.SetState(RollerShutterStateId.Off); } else if (direction.Equals(RollerShutterStateId.MovingDown)) { rollerShutter.SetState(RollerShutterStateId.MovingDown); } else if (direction.Equals(RollerShutterStateId.MovingUp)) { rollerShutter.SetState(RollerShutterStateId.MovingUp); } else { throw new InvalidOperationException(); } }