Example #1
0
        private static void Main()
        {
            var remoteControl = new RemoteControl();

            var light      = new Light("Living Room");
            var stereo     = new Stereo("Living Room");
            var ceilingFan = new CeilingFan("Living Room");

            var lightOn  = new LightOnCommand(light);
            var lightOff = new LightOffCommand(light);

            var stereoOnWithCd = new StereoOnWithCdCommand(stereo);
            var stereoOff      = new StereoOffCommand(stereo);

            var fanOn  = new CeilingFanOnCommand(ceilingFan);
            var fanOff = new CeilingFanOffCommand(ceilingFan);

            var partyOnMacro  = new MacroCommand(new ICommand[] { lightOn, stereoOnWithCd, fanOn });
            var partyOffMacro = new MacroCommand(new ICommand[] { lightOff, stereoOff, fanOff });

            remoteControl.SetCommand(0, lightOn, lightOff);
            remoteControl.SetCommand(1, stereoOnWithCd, stereoOff);
            remoteControl.SetCommand(2, fanOn, fanOff);
            remoteControl.SetCommand(3, partyOnMacro, partyOffMacro);

            Console.WriteLine(remoteControl);

            remoteControl.PressOnButton(0);
            remoteControl.PressOffButton(0);
            remoteControl.PressUndoButton();

            Console.WriteLine("--- Pushing Macro On ---");
            remoteControl.PressOnButton(3);
            Console.WriteLine("--- Pushing Macro Off ---");
            remoteControl.PressOffButton(3);
        }