using System; using System.Collections.Generic; using System.Linq; using System.Text; using RemoteController.ReceiverClasses; namespace RemoteController { /// /// Command which turns of the Light Object /// public class LightOffCommand : ICommand { private Light _light; /// /// /// /// Light that will turned off public LightOffCommand(Light light) { _light = light; } public void execute() { _light.off(); } public void undo() { _light.on(); } } public class LightOnCommand : ICommand { private Light _light; /// /// Command Object that turns the light on /// /// Light to turn on public LightOnCommand(Light light) { _light = light; } public void execute() { _light.on(); } public void undo() { _light.off(); } } public class GarageDoorOpenCommand : ICommand { private GarageDoor _garageDoor; public GarageDoorOpenCommand(GarageDoor garageDoor) { _garageDoor = garageDoor; } public void execute() { _garageDoor.open(); } public void undo() { _garageDoor.close(); } } public class GaragaeDoorClosedCommand : ICommand { private GarageDoor _garageDoor; public GaragaeDoorClosedCommand(GarageDoor garageDoor) { _garageDoor = garageDoor; } public void execute() { _garageDoor.close(); } public void undo() { _garageDoor.open(); } } public class StereoOnWithCDCommand : ICommand { private Stereo _stereo; public StereoOnWithCDCommand(Stereo stereo) { _stereo = stereo; } public void execute() { _stereo.on(); _stereo.setCD(); _stereo.setVolume(11); } public void undo() { _stereo.off(); } } public class StereoOffCommand : ICommand { private Stereo _stereo; public StereoOffCommand(Stereo stereo) { _stereo = stereo; } public void execute() { _stereo.setVolume(0); _stereo.off(); } public void undo() { _stereo.on(); } } public class CeilingFanOnCommand : ICommand { private CeilingFan _ceilingFan; public CeilingFanOnCommand(CeilingFan ceilingFan) { _ceilingFan = ceilingFan; } public void execute() { _ceilingFan.on(); } public void undo() { _ceilingFan.off(); } } public class CeilingFanOffCommand : ICommand { private CeilingFan _ceilingFan; public CeilingFanOffCommand(CeilingFan ceilingFan) { _ceilingFan = ceilingFan; } public void execute() { _ceilingFan.off(); } public void undo() { _ceilingFan.on(); } } /*Null Object Used to initalise a blank commands*/ public class NoCommand : ICommand { public void execute() { } public void undo() { } } }