public static void RunRemoteControlWithUndo() { var remote = new RemoteControlWithUndo(); var light = new Light(); var lightOn = new LightOnCommand(light); var lightOff = new LightOffCommand(light); var stereo = new Stereo(); var stereoOnWithCD = new StereoOnWithCDCommand(stereo); var stereoOff = new StereoOffCommand(stereo); remote.SetCommand(0, lightOn, lightOff); remote.SetCommand(1, stereoOnWithCD, stereoOff); System.Console.WriteLine(remote); remote.OnButtonWasPressed(0); remote.OffButtonWasPressed(0); remote.UndoButtonWasPressed(); remote.OnButtonWasPressed(1); remote.UndoButtonWasPressed(); remote.OffButtonWasPressed(1); }
static void Main(string[] args) { #region Simple remote control test //Light light = new Light(); //Command lightOn = new LightOnCommand(light); //SimpleRemoteControl remote = new SimpleRemoteControl(); //remote.SetCommand(lightOn); //remote.ButtonPressed(); //GarageDoor door = new GarageDoor(); //GaraDoorOpenCommand garageOpen = new GaraDoorOpenCommand(door); //remote.SetCommand(garageOpen); //remote.ButtonPressed(); #endregion #region remote control //Light kitchenLight = new Light("kichen"); //Light bedroomLight = new Light("bedroom"); //Stereo parlorStereo = new Stereo("parlor"); //Stereo washRommStereo = new Stereo("washroom"); //GarageDoor garageDoor = new GarageDoor(string.Empty); //LightOnCommand kitchenLightOn = new LightOnCommand(kitchenLight); //LightOffCommand kitchenLightOff = new LightOffCommand(kitchenLight); //StereoOnWithCDCommand parlorStereoOn = new StereoOnWithCDCommand(parlorStereo); //StereoOffCommand parloStereoOff = new StereoOffCommand(parlorStereo); //GaraDoorOpenCommand garageDoorOpen = new GaraDoorOpenCommand(garageDoor); //GaraDoorCloseCommand garageDoorClose = new GaraDoorCloseCommand(garageDoor); //RemoteControl remoteControl = new RemoteControl(); //remoteControl.SetCommand(0, kitchenLightOn, kitchenLightOff); //remoteControl.SetCommand(1, parlorStereoOn, parloStereoOff); //remoteControl.SetCommand(2, garageDoorOpen, garageDoorClose); //remoteControl.OnButtonWasPushed(2); //remoteControl.OffButtonWasPushed(2); //remoteControl.OnButtonWasPushed(1); //remoteControl.OnButtonWasPushed(0); //remoteControl.OffButtonWasPushed(0); //remoteControl.OffButtonWasPushed(1); //remoteControl.OnButtonWasPushed(3); //remoteControl.OffButtonWasPushed(4); #endregion #region remote control with undo //Light livintRoomLight = new Light("livingroom"); //LightOnCommand livingRoomOn = new LightOnCommand(livintRoomLight); //LightOffCommand livingRommOff = new LightOffCommand(livintRoomLight); //RemoteControlWithUndo remoteUndo = new RemoteControlWithUndo(); //remoteUndo.SetCommand(0, livingRoomOn, livingRommOff); //remoteUndo.OnButtonWasPushed(0); //remoteUndo.OffButtonWasPushed(0); //Console.WriteLine(remoteUndo.ToString()); //remoteUndo.UndoButtonWasPushed(); //remoteUndo.OffButtonWasPushed(0); //remoteUndo.OnButtonWasPushed(0); //Console.WriteLine(remoteUndo.ToString()); //remoteUndo.UndoButtonWasPushed(); #endregion #region remote control with multiple undo states //RemoteControlWithUndo remote = new RemoteControlWithUndo(); //CeilingFan fan = new CeilingFan("livingroom"); //CeilingFanHighSpeedCommand ceilingFanHigh = new CeilingFanHighSpeedCommand(fan); //CeilingFanLowSpeedCommand ceilingFanLow = new CeilingFanLowSpeedCommand(fan); //CeilingFanOffSpeedCommand ceilingFanOff = new CeilingFanOffSpeedCommand(fan); //remote.SetCommand(0, ceilingFanHigh, ceilingFanOff); //remote.SetCommand(1, ceilingFanLow, ceilingFanOff); //remote.OnButtonWasPushed(0); //remote.OffButtonWasPushed(0); //Console.WriteLine(remote.ToString()); //remote.UndoButtonWasPushed(); //remote.OnButtonWasPushed(1); //Console.WriteLine(remote.ToString()); //remote.UndoButtonWasPushed(); #endregion #region remote control with macro commands RemoteControlWithUndo remote = new RemoteControlWithUndo(); Light light = new Light("livingroom"); Stereo stero = new Stereo("livingroom"); CeilingFan fan = new CeilingFan("livingroom"); LightOnCommand livingLightOn = new LightOnCommand(light); StereoOnWithCDCommand livingStereoOn = new StereoOnWithCDCommand(stero); CeilingFanMediumSpeedCommand livingCeilingMedium = new CeilingFanMediumSpeedCommand(fan); LightOffCommand livingLightOff = new LightOffCommand(light); StereoOffCommand livingStereoOff = new StereoOffCommand(stero); CeilingFanOffSpeedCommand livingCeilingOff = new CeilingFanOffSpeedCommand(fan); Command[] macroOnCmd = { livingLightOn, livingStereoOn, livingCeilingMedium }; Command[] macroOffCmd = { livingLightOff, livingStereoOff, livingCeilingOff }; MacroCommand macroOn = new MacroCommand(macroOnCmd); MacroCommand macroOff = new MacroCommand(macroOffCmd); remote.SetCommand(0, macroOn, macroOff); Console.WriteLine(remote.ToString()); remote.OnButtonWasPushed(0); Console.WriteLine("------push macro on-----"); remote.OffButtonWasPushed(0); Console.WriteLine("------push macro off----"); #endregion Console.Read(); }
static void Main(string[] args) { var simpleRemoteControl = new SimpleRemoteControl(); var light = new Light("Bedroom"); var lightOnCommand = new LightOnCommand(light); simpleRemoteControl.SetCommand(lightOnCommand); simpleRemoteControl.ButtonWasPressed(); var door = new GarageDoor(""); var garageDoorOpenCommand = new GarageDoorOpenCommand(door); simpleRemoteControl.SetCommand(garageDoorOpenCommand); simpleRemoteControl.ButtonWasPressed(); Console.WriteLine(); var livingRoomLight = new Light("Living Room"); var kitchenLight = new Light("Kitchen"); var ceilingFan = new CeilingFan("Living Room"); var garageDoor = new GarageDoor(""); var stereo = new Stereo("Living Room"); var livingRoomLightOnCommand = new LightOnCommand(livingRoomLight); var livingRoomLightOffCommand = new LightOffCommand(livingRoomLight); var kitchenLightOnCommand = new LightOnCommand(kitchenLight); var kitchenLightOffCommand = new LightOffCommand(kitchenLight); var ceilingFanOnCommand = new CeilingFanOnCommand(ceilingFan); var ceilingFanOffCommand = new CeilingFanOffCommand(ceilingFan); var garageDoorUpCommand = new GarageDoorOpenCommand(garageDoor); var garageDoorDownCommand = new GarageDoorCloseCommand(garageDoor); var stereoOnWithCdCommand = new StereoOnWithCdCommand(stereo); var stereoOffCommand = new StereoOffCommand(stereo); var remote = new RemoteControl(); remote.SetCommand(0, livingRoomLightOnCommand, livingRoomLightOffCommand); remote.SetCommand(1, kitchenLightOnCommand, kitchenLightOffCommand); remote.SetCommand(2, ceilingFanOnCommand, ceilingFanOffCommand); remote.SetCommand(3, stereoOnWithCdCommand, stereoOffCommand); Console.WriteLine(remote.ToString()); Console.WriteLine(); remote.OnButtonWasPushed(0); remote.OffButtonWasPushed(0); remote.OnButtonWasPushed(1); remote.OffButtonWasPushed(1); remote.OnButtonWasPushed(2); remote.OffButtonWasPushed(2); remote.OnButtonWasPushed(3); remote.OffButtonWasPushed(3); Console.WriteLine(); Console.WriteLine("------------ Remote with Undo ------------"); var remoteWithUndo = new RemoteControlWithUndo(); var sunRoomLight = new Light("Sun Room"); var sunRoomLightOnCommand = new LightOnCommand(sunRoomLight); var sunRoomLightOffCommand = new LightOffCommand(sunRoomLight); remoteWithUndo.SetCommand(0, sunRoomLightOnCommand, sunRoomLightOffCommand); remoteWithUndo.OnButtonWasPushed(0); remoteWithUndo.OffButtonWasPushed(0); Console.WriteLine(remoteWithUndo.ToString()); remoteWithUndo.UndoButtonWasPushed(); remoteWithUndo.OffButtonWasPushed(0); remoteWithUndo.OnButtonWasPushed(0); Console.WriteLine(remoteWithUndo.ToString()); remoteWithUndo.UndoButtonWasPushed(); Console.WriteLine(); Console.WriteLine("------------ Ceiling Fan with Undo ------------"); remoteWithUndo = new RemoteControlWithUndo(); var ceilingFanMediumCommand = new CeilingFanMediumCommand(ceilingFan); var ceilingFanHighCommand = new CeilingFanHighCommand(ceilingFan); ceilingFanOffCommand = new CeilingFanOffCommand(ceilingFan); remoteWithUndo.SetCommand(0, ceilingFanMediumCommand, ceilingFanOffCommand); remoteWithUndo.SetCommand(1, ceilingFanHighCommand, ceilingFanOffCommand); remoteWithUndo.OnButtonWasPushed(0); remoteWithUndo.OffButtonWasPushed(0); Console.WriteLine(remoteWithUndo.ToString()); remoteWithUndo.UndoButtonWasPushed(); remoteWithUndo.OnButtonWasPushed(1); Console.WriteLine(remoteWithUndo.ToString()); remoteWithUndo.UndoButtonWasPushed(); Console.WriteLine(); Console.WriteLine("------------ Party Mode (Macro Commands) ------------"); remoteWithUndo = new RemoteControlWithUndo(); ICommand[] partyOn = { livingRoomLightOnCommand, stereoOnWithCdCommand, ceilingFanMediumCommand }; ICommand[] partyOff = { livingRoomLightOffCommand, stereoOffCommand, ceilingFanOffCommand }; var partyOnMacro = new MacroCommand(partyOn); var partyOffMacro = new MacroCommand(partyOff); remoteWithUndo.SetCommand(0, partyOnMacro, partyOffMacro); remoteWithUndo.OnButtonWasPushed(0); Console.WriteLine(); remoteWithUndo.OffButtonWasPushed(0); Console.ReadLine(); }
static void Main(string[] args) { ////////SimpleRemoteControl remote = new SimpleRemoteControl(); ////////ligth ligth = new ligth(); ////////GarageDoor garageDoor = new GarageDoor(); ////////LightOnCommand ligthon = new LightOnCommand(ligth); ////////GarageDoorOpenCommand garageOpen= new GarageDoorOpenCommand(garageDoor); ////////remote.setCommand(ligthon); ////////remote.buttonWasPressed(); ////////remote.setCommand(garageOpen); ////////remote.buttonWasPressed(); //////RemoteControlWithUndo remoteControl = new RemoteControlWithUndo(); //////ligth livingRoomLigth = new ligth("Living Room"); //////ligth kitchenLight = new ligth("kitchen"); //////GarageDoor garageDoor = new GarageDoor(); //////stereo stereo = new stereo("Living Room"); //////LightOnCommand livingRoomLigthOn = new LightOnCommand(livingRoomLigth); //////LightOffCommand livingRoomLigthOff = new LightOffCommand(livingRoomLigth); //////LightOnCommand KitchenLigthOn = new LightOnCommand(kitchenLight); //////LightOffCommand KitchenLigthOff = new LightOffCommand(kitchenLight); //////GarageDoorOpenCommand garageDoorUp = new GarageDoorOpenCommand(garageDoor); //////GarageDoorDownCommand garageDoorDown = new GarageDoorDownCommand(garageDoor); //////StereoOnWithCDCommand stereoOnWithCD = new StereoOnWithCDCommand(stereo); //////StereoOffCommand stereoOff = new StereoOffCommand(stereo); //////remoteControl.setCommand(0, livingRoomLigthOn, livingRoomLigthOff); //////remoteControl.setCommand(1, KitchenLigthOn, KitchenLigthOff); //////remoteControl.setCommand(2, stereoOnWithCD, stereoOff); //////Console.WriteLine(remoteControl.toString()); //////remoteControl.onButtonWasPushed(0); //////remoteControl.offButtonWasPushed(0); //////remoteControl.onButtonWasPushed(1); //////remoteControl.offButtonWasPushed(1); //////remoteControl.onButtonWasPushed(2); //////remoteControl.offButtonWasPushed(2); //////Console.ReadLine(); ////RemoteControlWithUndo remoteControl = new RemoteControlWithUndo(); ////ligth livingRoomLigth = new ligth("Living Room"); ////LightOnCommand livingRoomLigthOn = new LightOnCommand(livingRoomLigth); ////LightOffCommand livingRoomLigthOff = new LightOffCommand(livingRoomLigth); ////remoteControl.setCommand(0, livingRoomLigthOn, livingRoomLigthOff); ////remoteControl.onButtonWasPushed(0); ////remoteControl.offButtonWasPushed(0); ////Console.WriteLine(remoteControl.toString()); ////remoteControl.undoButtonWasPushed(); ////remoteControl.offButtonWasPushed(0); ////remoteControl.onButtonWasPushed(0); ////Console.WriteLine(remoteControl.toString()); ////remoteControl.undoButtonWasPushed(); ////Console.ReadLine(); //RemoteControlWithUndo remoteControl = new RemoteControlWithUndo(); //CeilingFan ceilingFan = new CeilingFan("Living Room"); //CeilingFanMediumCommand ceilingFanMedium = new CeilingFanMediumCommand(ceilingFan); //CeilingFanHighCommand ceilingFanHigh = new CeilingFanHighCommand(ceilingFan); //CeilingFanOffCommand ceilingFanOff = new CeilingFanOffCommand(ceilingFan); //remoteControl.setCommand(0, ceilingFanMedium, ceilingFanOff); //remoteControl.setCommand(1, ceilingFanHigh, ceilingFanOff); //remoteControl.onButtonWasPushed(0); //remoteControl.offButtonWasPushed(0); //Console.WriteLine(remoteControl.toString()); //remoteControl.undoButtonWasPushed(); //remoteControl.onButtonWasPushed(1); //Console.WriteLine(remoteControl.toString()); //remoteControl.undoButtonWasPushed(); //Console.ReadLine(); ligth light = new ligth("Living Room"); stereo stereo = new stereo("Living Room"); CeilingFan ceilingfan = new CeilingFan("living room"); LightOnCommand ligthOn = new LightOnCommand(light); StereoOnWithCDCommand stereoOn = new StereoOnWithCDCommand(stereo); CeilingFanHighCommand CeilingfanOn = new CeilingFanHighCommand(ceilingfan); LightOffCommand ligthOff = new LightOffCommand(light); StereoOffCommand stereoOff = new StereoOffCommand(stereo); CeilingFanOffCommand CeilingfanOff = new CeilingFanOffCommand(ceilingfan); command[] partyOn ={ligthOn,stereoOn,CeilingfanOn}; command[] partyOff = { ligthOff, stereoOff, CeilingfanOff }; MacroCommand partyOnMacro = new MacroCommand(partyOn); MacroCommand PartyOffMacro = new MacroCommand(partyOff); RemoteControlWithUndo remotecontrol = new RemoteControlWithUndo(); remotecontrol.setCommand(0, partyOnMacro, PartyOffMacro); Console.WriteLine(remotecontrol.toString()); Console.WriteLine("===Pushing Macro On ==="); remotecontrol.onButtonWasPushed(0); Console.WriteLine("===Pushing Macro Off ==="); remotecontrol.offButtonWasPushed(0); Console.WriteLine("===Pushing Macro undo ==="); remotecontrol.undoButtonWasPushed(); Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("-----------SimpleRemoteControl-------------"); SimpleRemoteControl remote = new SimpleRemoteControl(); Light light = new Light("Light"); LightOnCommand lightOn = new LightOnCommand(light); remote.setCommand(lightOn); remote.buttonWasPressed(); Console.WriteLine(""); RemoteControl remotControl = new RemoteControl(); Light livingRoomLight = new Light("Living Room"); Light kitchenLight = new Light("Kitchen"); Stereo stereo = new Stereo("Living Room"); LightOnCommand livingRoomLightOn = new LightOnCommand(livingRoomLight); LightOffCommand livingRoomLightOff = new LightOffCommand(livingRoomLight); LightOnCommand kitchenLightOn = new LightOnCommand(kitchenLight); LightOffCommand kitchenLightOff = new LightOffCommand(kitchenLight); StereoOnWithCDCommand StereoOnWithCDCommand = new StereoOnWithCDCommand(stereo); StereoOffCommand StereoOffCommand = new StereoOffCommand(stereo); remotControl.setCommand(0, livingRoomLightOn, livingRoomLightOff); remotControl.setCommand(1, kitchenLightOn, kitchenLightOff); remotControl.setCommand(2, StereoOnWithCDCommand, StereoOffCommand); Console.WriteLine(remotControl.toString()); remotControl.onButtonWasPushed(0); remotControl.offButtonWasPushed(0); remotControl.onButtonWasPushed(1); remotControl.offButtonWasPushed(1); remotControl.onButtonWasPushed(2); remotControl.offButtonWasPushed(2); Console.WriteLine(""); RemoteControlWithUndo undoRemotControl = new RemoteControlWithUndo(); Light livingRoomUndoLight = new Light("Living Room"); LightOnCommand livingRoomUndoLightOn = new LightOnCommand(livingRoomUndoLight); LightOffCommand livingRoomUndoLightOff = new LightOffCommand(livingRoomUndoLight); undoRemotControl.setCommand(0, livingRoomUndoLightOn, livingRoomUndoLightOff); undoRemotControl.onButtonWasPushed(0); undoRemotControl.offButtonWasPushed(0); Console.WriteLine(undoRemotControl.toString()); undoRemotControl.undoButtonWasPushed(); undoRemotControl.onButtonWasPushed(0); undoRemotControl.offButtonWasPushed(0); Console.WriteLine(undoRemotControl.toString()); undoRemotControl.undoButtonWasPushed(); }