Example #1
0
        private static void CallCommand()
        {
            string house = " house ";

            Remote remoteControl = new Remote();

            //clients
            Alarm      houseAlarm = new Alarm(house);
            CeilingFan ceilingFan = new CeilingFan(house);
            GarageDoor garageDoor = new GarageDoor(house);
            Hottub     hottub     = new Hottub();
            Light      light      = new Light(house);
            Stereo     stereo     = new Stereo(house);

            remoteControl.SetCommand(0, new AlarmOnCommand(houseAlarm), new AlarmOffCommand(houseAlarm));
            remoteControl.SetCommand(1, new AlarmOnCommand(houseAlarm), new AlarmOffCommand(houseAlarm));
            remoteControl.SetCommand(2, new AlarmOnCommand(houseAlarm), new AlarmOffCommand(houseAlarm));
            remoteControl.SetCommand(3, new AlarmOnCommand(houseAlarm), new AlarmOffCommand(houseAlarm));
            remoteControl.SetCommand(4, new AlarmOnCommand(houseAlarm), new AlarmOffCommand(houseAlarm));
            remoteControl.SetCommand(5, new AlarmOnCommand(houseAlarm), new AlarmOffCommand(houseAlarm));
            remoteControl.SetCommand(6, new AlarmOnCommand(houseAlarm), new AlarmOffCommand(houseAlarm));



            Console.WriteLine(remoteControl.OnButtonWasPushed(0));
        }
        private static void CommandPattern()
        {
            RemoteControlWithUndo remoteControl = new RemoteControlWithUndo();

            Light  light  = new Light("Living Room");
            TV     tv     = new TV("Living Room");
            Stereo stereo = new Stereo("Living Room");
            Hottub hottub = new Hottub();

            LightOnCommand  lightOn  = new LightOnCommand(light);
            StereoOnCommand stereoOn = new StereoOnCommand(stereo);
            TVOnCommand     tvOn     = new TVOnCommand(tv);
            HottubOnCommand hottubOn = new HottubOnCommand(hottub);

            LightOffCommand  lightOff  = new LightOffCommand(light);
            StereoOffCommand stereoOff = new StereoOffCommand(stereo);
            TVOffCommand     tvOff     = new TVOffCommand(tv);
            HottubOffCommand hottubOff = new HottubOffCommand(hottub);

            Command[] partyOn  = { lightOn, stereoOn, tvOn, hottubOn };
            Command[] partyOff = { lightOff, stereoOff, tvOff, hottubOff };

            MacroCommand partyOnMacro  = new MacroCommand(partyOn);
            MacroCommand partyOffMacro = new MacroCommand(partyOff);

            remoteControl.setCommand(0, partyOnMacro, partyOffMacro);

            Console.WriteLine(remoteControl);
            Console.WriteLine("--- Pushing Macro On ---");
            remoteControl.onButtonWasPushed(0);
            Console.WriteLine("--- Pushing Macro Off ---");
            remoteControl.offButtonWasPushed(0);
        }
Example #3
0
        public static void MacroCommandTests()
        {
            var light  = new Light("Living Room");
            var tv     = new TV("Living Room");
            var stereo = new Stereo("Living Room");
            var hottub = new Hottub();

            var lightOn  = new LightOnCommand(light);
            var stereoOn = new StereoOnWithCdCommand(stereo);
            var tvOn     = new TvOnCommand(tv);
            var hottubOn = new HottubOnCommand(hottub);

            var lightOff  = new LightOffCommand(light);
            var stereoOff = new StereoOffCommand(stereo);
            var tvOff     = new TvOffCommand(tv);
            var hottubOff = new HottubOffCommand(hottub);

            IUndoableCommand[] partyOn       = { lightOn, stereoOn, tvOn, hottubOn };
            IUndoableCommand[] partyOff      = { lightOff, stereoOff, tvOff, hottubOff };
            MacroCommand       partyOnMacro  = new MacroCommand(partyOn);
            MacroCommand       partyOffMacro = new MacroCommand(partyOff);

            var remoteControl = new RemoteControl();

            remoteControl.SetCommand(1, partyOnMacro, partyOffMacro);

            Console.WriteLine(remoteControl);
            Console.WriteLine("---Pushing Macro On-- -");
            remoteControl.OnButtonWasPushed(1);
            Console.WriteLine("---Pushing Macro Off-- -");
            remoteControl.OffButtonWasPushed(1);

            Console.ReadKey();
        }
Example #4
0
        public static void MacroCommandExample()
        {
            Light  light  = new Light("Living Room");
            TV     tv     = new TV("Living Room");
            Stereo stereo = new Stereo("Living Room");
            Hottub hottub = new Hottub();

            LightOnCommand  lightOn  = new LightOnCommand(light);
            StereoOnCommand stereoOn = new StereoOnCommand(stereo);
            TVOnCommand     tvOn     = new TVOnCommand(tv);
            HottubOnCommand hottubOn = new HottubOnCommand(hottub);

            LightOffCommand  lightOff  = new LightOffCommand(light);
            StereoOffCommand stereoOff = new StereoOffCommand(stereo);
            TVOffCommand     tvOff     = new TVOffCommand(tv);
            HottubOffCommand hottubOff = new HottubOffCommand(hottub);

            ICommand[] partyOn  = { lightOn, stereoOn, tvOn, hottubOn };
            ICommand[] partyOff = { lightOff, stereoOff, tvOff, hottubOff };

            MacroCommand partyOnMacro  = new MacroCommand(partyOn);
            MacroCommand partyOffMacro = new MacroCommand(partyOff);

            RemoteControl remoteControl = new RemoteControl();

            remoteControl.SetCommand(0, partyOnMacro, partyOffMacro);

            Console.WriteLine(remoteControl.ToString());
            Console.WriteLine("\n--- Pushing Macro On---");
            remoteControl.OnButtonPushed(0);
            Console.WriteLine("\n--- Pushing Macro Off---");
            remoteControl.OffButtonPushed(0);
        }
Example #5
0
        public void Load()
        {
            RemoteControlWithUndo remoteControl = new RemoteControlWithUndo();

            Light      livingRoomLight = new Light("Living Room");
            Light      kitchenLight    = new Light("Kitchen");
            Light      light           = new Light();
            TV         tv         = new TV();
            Hottub     hottub     = new Hottub();
            CeilingFan ceilingFan = new CeilingFan("Living Room");
            GarageDoor garageDoor = new GarageDoor();
            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);

            CeilingFanOffCommand    ceilingFanOff    = new CeilingFanOffCommand(ceilingFan);
            CeilingFanHighCommand   ceilingFanHigh   = new CeilingFanHighCommand(ceilingFan);
            CeilingFanMediumCommand ceilingFanMedium = new CeilingFanMediumCommand(ceilingFan);

            GarageDoorUpCommand   garageDoorUp   = new GarageDoorUpCommand(garageDoor);
            GarageDoorDownCommand garageDoorDown = new GarageDoorDownCommand(garageDoor);

            StereoOnWithCDCommand stereoOnWithCd = new StereoOnWithCDCommand(stereo);
            StereoOffCommand      stereoOff      = new StereoOffCommand(stereo);

            LightOnCommand  lightOn  = new LightOnCommand(light);
            StereoOnCommand stereoOn = new StereoOnCommand(stereo);
            TVOnCommand     tvOn     = new TVOnCommand(tv);
            HottubOnCommand hottubOn = new HottubOnCommand(hottub);

            LightOffCommand  lightOff  = new LightOffCommand(light);
            TVOffCommand     tvOff     = new TVOffCommand(tv);
            HottubOffCommand hottubOff = new HottubOffCommand(hottub);

            Command[] partyOn  = { lightOn, stereoOn, tvOn, hottubOn };
            Command[] partyOff = { lightOff, stereoOff, tvOff, hottubOff };

            MacroCommand partyOnMacro  = new MacroCommand(partyOn);
            MacroCommand partyOffMacro = new MacroCommand(partyOff);

            remoteControl.SetCommand(0, livingRoomLightOn, livingRoomLightOff);
            remoteControl.SetCommand(1, kitchenLightOn, kitchenLightOff);
            remoteControl.SetCommand(2, ceilingFanHigh, ceilingFanOff);
            remoteControl.SetCommand(3, ceilingFanMedium, ceilingFanOff);
            remoteControl.SetCommand(4, stereoOnWithCd, stereoOff);
            remoteControl.SetCommand(5, garageDoorUp, garageDoorDown);
            remoteControl.SetCommand(6, partyOnMacro, partyOffMacro);

            Console.WriteLine(remoteControl);

            for (int i = 0; i <= 6; i++)
            {
                remoteControl.OnButtonWasPushed(i);
                remoteControl.OffButtonWasPushed(i);
                remoteControl.UndoButtonWasPushed();
            }
        }
Example #6
0
        static void Main(string[] args)
        {
            var remoteControl = new RemoteControl();

            var light      = new Light("Living Roon");
            var tv         = new TV("Living Room");
            var stereo     = new Stereo("Living Room");
            var hottub     = new Hottub();
            var garageDoor = new GarageDoor(string.Empty);

            var lightOnCommand   = new LightOnCommand(light);
            var lightOffCommand  = new LightOffCommand(light);
            var stereoOnCommand  = new StereoOnCommand(stereo);
            var stereoOffCommand = new StereoOffCommand(stereo);
            var tvOnCommand      = new TVOnCommand(tv);
            var tvOffCommand     = new TVOffCommand(tv);
            var hottubOnCommand  = new HottubOnCommand(hottub);
            var hottubOffCommand = new HottubOffCommand(hottub);

            var partyOn  = new ICommand[] { lightOnCommand, stereoOnCommand, tvOnCommand, hottubOnCommand };
            var partyOff = new ICommand[] { lightOffCommand, stereoOffCommand, tvOffCommand, hottubOffCommand };

            var partyOnMacro  = new MacroCommand(partyOn);
            var partyOffMacro = new MacroCommand(partyOff);

            //remoteControl.SetCommand(0, lightOnCommand, lightOffCommand);
            //remoteControl.SetCommand(1, tvOnCommand, tvOffCommand);
            //remoteControl.SetCommand(2, stereoOnCommand, stereoOffCommand);
            //remoteControl.SetCommand(3, hottubOnCommand, hottubOffCommand);
            remoteControl.SetCommand(0, partyOnMacro, partyOffMacro);
            remoteControl.SetCommand(6, new GarageDoorUpCommand(garageDoor), new GarageDoorDownCommand(garageDoor));

            Console.WriteLine(remoteControl);

            remoteControl.OnButtonPressed(2);
            remoteControl.OnButtonPressed(0);
            remoteControl.OnButtonPressed(3);
            remoteControl.OnButtonPressed(1);

            remoteControl.OffButtonPressed(2);
            remoteControl.OffButtonPressed(0);
            remoteControl.OffButtonPressed(3);
            remoteControl.OffButtonPressed(1);

            remoteControl.OnButtonPressed(6);
            remoteControl.UndoButtonPressed();

            Console.Read();
        }
        public CommandController()
        {
            string house = " house ";

            //clients
            Alarm      houseAlarm = new Alarm(house);
            CeilingFan ceilingFan = new CeilingFan(house);
            GarageDoor garageDoor = new GarageDoor(house);
            Hottub     hottub     = new Hottub();
            Light      light      = new Light(house);
            Stereo     stereo     = new Stereo(house);

            //set up Remote Control
            remoteControl.SetCommand(0, new AlarmOnCommand(houseAlarm), new AlarmOffCommand(houseAlarm));
            remoteControl.SetCommand(1, new CeilingFanOnCommand(ceilingFan), new CeilingFanOffCommand(ceilingFan));
            remoteControl.SetCommand(2, new GarageDoorUpCommand(garageDoor), new GarageDoorDownCommand(garageDoor));
            remoteControl.SetCommand(3, new HottubOnCommand(hottub), new HottubOffCommand(hottub));
            remoteControl.SetCommand(4, new StereoOnWithCDCommand(stereo), new StereoOffCommand(stereo));
        }
 public HottubOnCommand(Hottub hottub)
 {
     this.hottub = hottub;
 }
Example #9
0
        static void Main(string[] args)
        {
            /*var remote = new SimpleRemoteControl();
             *
             * var light = new Light();
             * var garageDoor = new GarageDoor();
             *
             * var lightOnCommand = new LigthOnCommand(light);
             * var garageOpenCommand = new GarageDoorOpenCommand(garageDoor);
             *
             * remote.SetCommand(lightOnCommand);
             * remote.ButtonWasPressed();
             * remote.SetCommand(garageOpenCommand);
             * remote.ButtonWasPressed();*/

            var remoteControl = new RemoteControl();

            var livigRoomLight = 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 livingRoomLightOn  = new LightOnCommand(livigRoomLight);
            var livingRoomLightOff = new LightOffCommand(livigRoomLight);

            var kitchenRoomLightOn  = new LightOnCommand(kitchenLight);
            var kitchenRoomLightOff = new LightOffCommand(kitchenLight);

            var ceilingFanOn  = new CeilingFanOnCommand(ceilingFan);
            var ceilingFanOff = new CeilingFanOffCommand(ceilingFan);

            var garageDoorUp   = new GarageDoorOpenCommand(garageDoor);
            var garageDoorDown = new GarageDoorDownCommand(garageDoor);

            var stereoOnWithCD = new StereoOnWithCDCommand(stereo);
            var stereoOff      = new StereoOffCommand(stereo);

            remoteControl.SetCommand(0, livingRoomLightOn, livingRoomLightOff);
            remoteControl.SetCommand(1, kitchenRoomLightOn, kitchenRoomLightOff);
            remoteControl.SetCommand(2, ceilingFanOn, ceilingFanOff);
            remoteControl.SetCommand(3, stereoOnWithCD, stereoOff);

            Console.WriteLine(remoteControl);

            remoteControl.OnButtonWasPushed(0);
            remoteControl.OffButtonWasPushed(0);
            remoteControl.OnButtonWasPushed(1);
            remoteControl.OffButtonWasPushed(1);
            remoteControl.OnButtonWasPushed(2);
            remoteControl.OffButtonWasPushed(2);
            remoteControl.OnButtonWasPushed(3);
            remoteControl.OffButtonWasPushed(3);

            Console.WriteLine("-----------------------------------------------------");

            remoteControl.OnButtonWasPushed(0);
            remoteControl.OffButtonWasPushed(0);
            Console.WriteLine(remoteControl);
            remoteControl.UndoButtonWasPushed();
            remoteControl.OffButtonWasPushed(0);
            remoteControl.OnButtonWasPushed(0);
            Console.WriteLine(remoteControl);
            remoteControl.UndoButtonWasPushed();

            var ceilingFanMedium = new CeilingFanMediumCommand(ceilingFan);
            var ceilingFanHigh   = new CeilingFanHighCommand(ceilingFan);

            remoteControl.SetCommand(0, ceilingFanMedium, ceilingFanOff);
            remoteControl.SetCommand(1, ceilingFanHigh, ceilingFanOff);

            Console.WriteLine("-----------------------------------------------------");

            Console.WriteLine(remoteControl);

            remoteControl.OnButtonWasPushed(0);
            remoteControl.OffButtonWasPushed(0);
            Console.WriteLine(remoteControl);
            remoteControl.UndoButtonWasPushed();

            remoteControl.OnButtonWasPushed(1);
            Console.WriteLine(remoteControl);
            remoteControl.UndoButtonWasPushed();

            Console.WriteLine("-----------------------------------------------------");

            var tv     = new TV("Living room");
            var hottub = new Hottub();

            var stereoOn = new StereoOnCommand(stereo);
            var tvOn     = new TVOnCommand(tv);
            var hottubOn = new HottubOnCommand(hottub);

            var tvOff     = new TVOffCommand(tv);
            var hottubOff = new HottubOffCommand(hottub);

            ICommand[] partyOn  = { livingRoomLightOn, stereoOn, tvOn, hottubOn };
            ICommand[] partyOff = { livingRoomLightOff, stereoOff, tvOff, hottubOff };

            var partyOnMacro  = new MacroCommand(partyOn);
            var partyOffMacro = new MacroCommand(partyOff);

            remoteControl.SetCommand(0, partyOnMacro, partyOffMacro);

            Console.WriteLine(remoteControl);
            Console.WriteLine("---Pushing Macro On---");
            remoteControl.OnButtonWasPushed(0);
            Console.WriteLine("---Pushing Macro Off---");
            remoteControl.OffButtonWasPushed(0);

            remoteControl.UndoButtonWasPushed();
        }
Example #10
0
        static void Main(string[] args)
        {
            LightOffCommand livingRoomLightOff, kitchenLightOff;
            LightOnCommand livingRoomLightOn, kitchenLightOn;

            Light livingRoomLight = new Light("\nЖилая комната\n");
            Console.WriteLine(livingRoomLight.On());
            Light kitchenLight = new Light("\nКухня\n");
            Console.WriteLine(kitchenLight.On());
            ///Создание команд для управления освещением
            livingRoomLightOn = new LightOnCommand(livingRoomLight);
            livingRoomLightOn.Execute();
            kitchenLightOn = new LightOnCommand(kitchenLight);
            kitchenLightOn.Execute();
            Console.WriteLine(livingRoomLight.Off());
            Console.WriteLine(kitchenLight.Off());
            ///Создание команд для управления освещением
            livingRoomLightOff = new LightOffCommand(livingRoomLight);
            livingRoomLightOn.Execute();
            kitchenLightOff= new LightOffCommand(kitchenLight);
            kitchenLightOff.Execute();
            ///Создание команд для управления сауной
            Hottub hottub = new Hottub();
            Console.WriteLine(hottub.Heat());
            HottubOnCommand HottubOn = new HottubOnCommand(hottub);
            HottubOn.Execute();
            Console.WriteLine(hottub.Cool());
            HottubOffCommand HottubOff = new HottubOffCommand(hottub);
            Console.WriteLine(HottubOff.Execute());
            CeilingFan ceilingFan = new CeilingFan("\nЖилая комната\n");
            Console.WriteLine(ceilingFan.High());
            ///Создание команд управления потолочным вентилятором
            CeilingFanOnCommand ceilingFanOn = new CeilingFanOnCommand(ceilingFan);
            ceilingFanOn.Execute();

             GarageDoor garageDoor = new GarageDoor("\n Дверь гаража\n ");
            Console.WriteLine(garageDoor.Up());
            ///Создание команд для управления дверью гаража
            GarageDoorUpCommand garageDoorUp = new GarageDoorUpCommand(garageDoor);
            garageDoorUp.Execute();
            Console.WriteLine(garageDoor.LightOn());
            garageDoorUp.Execute();
            Console.WriteLine(garageDoor.Stop());
            garageDoorUp.Execute();
            Stereo stereo = new Stereo("\nЖилая комната\n");
            Console.WriteLine(stereo.On());
            Console.WriteLine(stereo.SetCD());
            Console.WriteLine(stereo.SetDVD());
            ///создание команд для управления стереосистемами
            StereoOnWithCDCommand stereoOnwithCD = new StereoOnWithCDCommand(stereo);
            stereoOnwithCD.Execute();
            Console.WriteLine(stereo.Off());
            ///создание команд для управления стереосистемами
            StereoOffCommand stereoOffwithCD = new StereoOffCommand(stereo);
            Console.WriteLine(stereoOffwithCD.Execute());
            Stereo stereo2 = new Stereo("\n\nКухня \n");
            Console.WriteLine(stereo2.Off());
            ///создание команд для управления стереосистемами
            StereoOffCommand stereoOffwithCD2 = new StereoOffCommand(stereo2);
            Console.WriteLine(stereoOffwithCD2.Execute());
            Console.ReadKey();
        }
        public static void Test()
        {
            RemoteControl remoteControl = new RemoteControl();

            Light      livingRoomLight = new Light("Living Room");
            Light      kitchenLight    = new Light("Kitchen");
            CeilingFan ceilingFan      = new CeilingFan("Living Room");
            GarageDoor garageDoor      = new GarageDoor("Garage");
            Stereo     stereo          = new Stereo("Living Room");
            TV         tv     = new TV("Living Room");
            Hottub     hottub = new Hottub();

            LightOnCommand livingRoomLightOn =
                new LightOnCommand(livingRoomLight);
            LightOffCommand livingRoomLightOff =
                new LightOffCommand(livingRoomLight);
            LightOnCommand kitchenLightOn =
                new LightOnCommand(kitchenLight);
            LightOffCommand kitchenLightOff =
                new LightOffCommand(kitchenLight);

            CeilingFanOnCommand ceilingFanOn =
                new CeilingFanOnCommand(ceilingFan);
            CeilingFanOffCommand ceilingFanOff =
                new CeilingFanOffCommand(ceilingFan);

            GarageDoorUpCommand garageDoorUp =
                new GarageDoorUpCommand(garageDoor);
            GarageDoorDownCommand garageDoorDown =
                new GarageDoorDownCommand(garageDoor);

            StereoOnWithCDCommand stereoOnWithCD =
                new StereoOnWithCDCommand(stereo);
            StereoOffCommand stereoOff =
                new StereoOffCommand(stereo);

            TVOnCommand tvOn =
                new TVOnCommand(tv);
            TVOffCommand tvOff =
                new TVOffCommand(tv);

            HottubOnCommand hottubOn =
                new HottubOnCommand(hottub);
            HottubOffCommand hottubOff =
                new HottubOffCommand(hottub);



            Command[]    partyOn        = { livingRoomLightOn, stereoOnWithCD, tvOn, hottubOn };
            Command[]    partyOff       = { livingRoomLightOff, stereoOff, tvOff, hottubOff };
            MacroCommand partyOnCommand =
                new MacroCommand(partyOn);
            MacroCommand partyOffCommand =
                new MacroCommand(partyOff);

            remoteControl.setCommand(0, livingRoomLightOn, livingRoomLightOff);
            remoteControl.setCommand(1, kitchenLightOn, kitchenLightOff);
            remoteControl.setCommand(2, ceilingFanOn, ceilingFanOff);
            remoteControl.setCommand(3, stereoOnWithCD, stereoOff);
            remoteControl.setCommand(4, partyOnCommand, partyOffCommand);

            Console.WriteLine(remoteControl);

            remoteControl.onButtonWasPushed(0);
            remoteControl.offButtonWasPushed(0);
            remoteControl.onButtonWasPushed(1);
            remoteControl.offButtonWasPushed(1);
            remoteControl.onButtonWasPushed(2);
            remoteControl.offButtonWasPushed(2);
            remoteControl.onButtonWasPushed(3);
            remoteControl.offButtonWasPushed(3);

            Console.WriteLine("-------------------------------------------------------------- Party Mode On -----------------------------------------------");
            remoteControl.onButtonWasPushed(4);
            remoteControl.offButtonWasPushed(4);
            remoteControl.undoButtonPushed();
        }
Example #12
0
 public HottubOnWithBubblesCommand(Hottub hottub)
 {
     this.hottub = hottub;
 }
Example #13
0
        public static void Start()
        {
            // SimpleRemoteControl example
            //SimpleRemoteControl remote = new SimpleRemoteControl();

            //Light light = new Light();
            //LightOnCommand lightOn = new LightOnCommand(light);

            //GarageDoor garageDoor = new GarageDoor();
            //GarageDoorOpenCommand garageOpen = new GarageDoorOpenCommand(garageDoor);

            //remote.SetCommand(lightOn);
            //remote.ButtonWasPressed();

            //remote.SetCommand(garageOpen);
            //remote.ButtonWasPressed();

            // RemoteControl example
            //RemoteControl remoteControl = new RemoteControl();
            //Light livingRoomLight = new Light("Living Room");
            //Light kitchenLight = new Light("Kitchen");
            //CeilingFan ceilingFan = new CeilingFan("Living Room");
            //GarageDoor garageDoor = new GarageDoor();
            //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);

            //CeilingFanOnCommand ceilingFanOn = new CeilingFanOnCommand(ceilingFan);
            //CeilingFanOffCommand ceilingFanOff = new CeilingFanOffCommand(ceilingFan);

            //GarageDoorOpenCommand garageDoorUp = new GarageDoorOpenCommand(garageDoor);
            //GarageDoorCloseCommand garageDoorDown = new GarageDoorCloseCommand(garageDoor);

            //StereoOnWithCDCommand stereoOnWithCD = new StereoOnWithCDCommand(stereo);
            //StereoOffCommand stereoOff = new StereoOffCommand(stereo);

            //remoteControl.SetCommand(0, livingRoomLightOn, livingRoomLightOff);
            //remoteControl.SetCommand(1, kitchenLightOn, kitchenLightOff);
            //remoteControl.SetCommand(2, ceilingFanOn, ceilingFanOff);
            //remoteControl.SetCommand(3, stereoOnWithCD, stereoOff);

            //Console.WriteLine(remoteControl);

            //remoteControl.OnButtonWasPushed(0);
            //remoteControl.OffButtonWasPushed(0);
            //remoteControl.OnButtonWasPushed(1);
            //remoteControl.OffButtonWasPushed(1);
            //remoteControl.OnButtonWasPushed(2);
            //remoteControl.OffButtonWasPushed(2);
            //remoteControl.OnButtonWasPushed(3);
            //remoteControl.OffButtonWasPushed(3);

            // MacroCommand Example
            RemoteControl remoteControl = new RemoteControl();

            Light  light  = new Light("Living Room");
            TV     tv     = new TV("Living Room");
            Stereo stereo = new Stereo("Living Room");
            Hottub hottub = new Hottub();

            LightOnCommand  lightOn  = new LightOnCommand(light);
            StereoOnCommand stereoOn = new StereoOnCommand(stereo);
            TVOnCommand     tvOn     = new TVOnCommand(tv);
            HottubOnCommand hottubOn = new HottubOnCommand(hottub);

            LightOffCommand  lightOff  = new LightOffCommand(light);
            StereoOffCommand stereoOff = new StereoOffCommand(stereo);
            TVOffCommand     tvOff     = new TVOffCommand(tv);
            HottubOffCommand hottubOff = new HottubOffCommand(hottub);

            ICommand[] partyOn  = { lightOn, stereoOn, tvOn, hottubOn };
            ICommand[] partyOff = { lightOff, stereoOff, tvOff, hottubOff };

            MacroCommand partyOnMacro  = new MacroCommand(partyOn);
            MacroCommand partyOffMacro = new MacroCommand(partyOff);

            remoteControl.SetCommand(0, partyOnMacro, partyOffMacro);

            Console.WriteLine(remoteControl);
            Console.WriteLine("---Pushing Macro On---");

            remoteControl.OnButtonWasPushed(0);

            Console.WriteLine("---Pushing Macro Off---");

            remoteControl.OffButtonWasPushed(0);
        }
 public HottubOnCommand(Hottub hottub)
 {
     this.hottub = hottub;
 }
        public static void Run()
        {
            // Invoker
            RemoteControlWithUndo remoteControl = new RemoteControlWithUndo();

            // Receivers
            Light  livingRoomLight = new Light("Living Room");
            TV     tv     = new TV("Living Room");
            Stereo stereo = new Stereo("Living Room");
            Hottub hottub = new Hottub("Outside");

            // Commands
            LightOnCommand  livingRoomLightOn  = new LightOnCommand(livingRoomLight);
            LightOffCommand livingRoomLightOff = new LightOffCommand(livingRoomLight);

            TVOnCommand  tvOn  = new TVOnCommand(tv);
            TVOffCommand tvOff = new TVOffCommand(tv);

            StereoOnWithCDCommand stereoOnWithCD = new StereoOnWithCDCommand(stereo);
            StereoOffCommand      stereoOff      = new StereoOffCommand(stereo);

            HottubOnCommand  hottubOn  = new HottubOnCommand(hottub);
            HottubOffCommand hottubOff = new HottubOffCommand(hottub);

            // Set Macro
            ICommand[] partyOn  = { livingRoomLightOn, stereoOnWithCD, tvOn, hottubOn };
            ICommand[] partyOff = { livingRoomLightOff, stereoOff, tvOff, hottubOff };

            MacroCommand partyOnMacro  = new MacroCommand(partyOn);
            MacroCommand partyOffMacro = new MacroCommand(partyOff);

            // Set Commands
            remoteControl.SetCommand(0, partyOnMacro, partyOffMacro);

            // Invoke Commands
            Console.WriteLine("==================================================");
            Console.WriteLine("============= Pressing Macro Buttons =============");
            Console.WriteLine("==================================================");
            Console.WriteLine();
            Console.WriteLine(remoteControl);
            Console.WriteLine();
            for (int i = 0; i < remoteControl.numberOfSlots; i++)
            {
                remoteControl.OnButtonWasPushed(i);
                if (!(remoteControl.onCommands[i] is NoCommand))
                {
                    Console.WriteLine();
                }
                remoteControl.OffButtonWasPushed(i);

                if (!(remoteControl.onCommands[i] is NoCommand))
                {
                    Console.WriteLine();
                }
            }
            Console.WriteLine();
            Console.WriteLine("----- Undo -----");
            int undoSize = remoteControl.undoCommands.Count;

            for (int i = 0; i < undoSize; i++)
            {
                remoteControl.UndoButtonWasPushed();
            }
        }
Example #16
0
 public HottubOffCommand(Hottub hottub)
 {
     _hottub = hottub;
 }
        static void Main(string[] args)
        {
            Console.WriteLine("SIMPLE REMOTE CONTROL");
            var simpleRemoteControl = new SimpleRemoteControl();
            var light   = new Light("Living room");
            var lightOn = new LightOnCommand(light);

            simpleRemoteControl.SetCommand(lightOn);
            simpleRemoteControl.ButtonWasPressed();

            var garageDoorSimpleControl = new GarageDoor();
            var garageOpen = new GarageDoorOpenCommand(garageDoorSimpleControl);

            simpleRemoteControl.SetCommand(garageOpen);
            simpleRemoteControl.ButtonWasPressed();

            Console.WriteLine("REMOTE CONTROL");
            var remoteControl   = new RemoteControl();
            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 livingRoomLightOn  = new LightOnCommand(livingRoomLight);
            var livingRoomLightOff = new LightOffCommand(livingRoomLight);
            var kitchenLightOn     = new LightOnCommand(kitchenLight);
            var kitchenLightOff    = new LightOffCommand(kitchenLight);

            var ceilingFanOn  = new CeilingFanOnCommand(ceilingFan);
            var ceilingFanOff = new CeilingFanOffCommand(ceilingFan);

            var garageDoorOpen  = new GarageDoorOpenCommand(garageDoor);
            var garageDoorClose = new GarageDoorCloseCommand(garageDoor);

            var stereoOnWithCd  = new StereoOnWithCdCommand(stereo);
            var stereoOffWithCd = new StereoOffWithCdCommand(stereo);

            remoteControl.SetCommand(0, livingRoomLightOn, livingRoomLightOff);
            remoteControl.SetCommand(1, kitchenLightOn, kitchenLightOff);
            remoteControl.SetCommand(2, ceilingFanOn, ceilingFanOff);
            remoteControl.SetCommand(3, stereoOnWithCd, stereoOffWithCd);

            Console.WriteLine(remoteControl.ToString());
            Console.WriteLine("-----------------FUNÇÕES EXECUTANDO");

            remoteControl.OnButtonWasPushed(0);
            remoteControl.OffButtonWasPushed(0);
            remoteControl.OnButtonWasPushed(1);
            remoteControl.OffButtonWasPushed(1);
            remoteControl.OnButtonWasPushed(2);
            remoteControl.OffButtonWasPushed(2);
            remoteControl.OnButtonWasPushed(3);
            remoteControl.OffButtonWasPushed(3);

            Console.WriteLine("");
            Console.WriteLine("REMOTE CONTROL WITH UNDO");
            remoteControl.OnButtonWasPushed(0);
            remoteControl.OffButtonWasPushed(0);
            remoteControl.UndoButtonWasPushed();
            remoteControl.OnButtonWasPushed(1);
            remoteControl.OffButtonWasPushed(1);
            remoteControl.UndoButtonWasPushed();
            remoteControl.OnButtonWasPushed(2);
            remoteControl.OffButtonWasPushed(2);
            remoteControl.UndoButtonWasPushed();
            remoteControl.OnButtonWasPushed(3);
            remoteControl.OffButtonWasPushed(3);
            remoteControl.UndoButtonWasPushed();

            Console.WriteLine("");
            Console.WriteLine("REMOTE CONTROL WITH UNDO OF THE CEILING FAN");
            var remoteControlCeilingFan = new RemoteControl();
            var ceilingFanHigh          = new CeilingFanHightCommand(ceilingFan);
            var ceilingFanMedium        = new CeilingFanMediumCommand(ceilingFan);

            remoteControlCeilingFan.SetCommand(0, ceilingFanMedium, ceilingFanOff);
            remoteControlCeilingFan.SetCommand(1, ceilingFanHigh, ceilingFanOff);

            remoteControlCeilingFan.OnButtonWasPushed(0);
            remoteControlCeilingFan.OffButtonWasPushed(0);
            Console.WriteLine(remoteControlCeilingFan.ToString());
            remoteControlCeilingFan.UndoButtonWasPushed();
            //remoteControlCeilingFan.OnButtonWasPushed(0);
            remoteControlCeilingFan.OnButtonWasPushed(1);
            Console.WriteLine(remoteControlCeilingFan.ToString());
            remoteControlCeilingFan.UndoButtonWasPushed();


            Console.WriteLine("");
            Console.WriteLine("MACRO COMAND (PARTY MODE)");

            var tv     = new Tv("Living room");
            var hottub = new Hottub();

            var tvOn      = new TvOnCommand(tv);
            var tvOff     = new TvOffCommand(tv);
            var hottubOn  = new HottubOnCommand(hottub);
            var hottubOff = new HottubOffCommand(hottub);

            var commandsPartyOn = new List <ICommand>()
            {
                livingRoomLightOn,
                stereoOnWithCd,
                tvOn,
                hottubOn
            };

            var commandsPartyOff = new List <ICommand>()
            {
                livingRoomLightOff,
                stereoOffWithCd,
                tvOff,
                hottubOff
            };
            var partyOn            = new MacroCommand(commandsPartyOn);
            var partyOff           = new MacroCommand(commandsPartyOff);
            var remoteControlParty = new RemoteControl();

            remoteControlParty.SetCommand(0, partyOn, partyOff);

            Console.WriteLine(remoteControlParty.ToString());
            Console.WriteLine("PUSHING MACRO ON");
            remoteControlParty.OnButtonWasPushed(0);
            Console.WriteLine("PUSHING MACRO OFF");
            remoteControlParty.OffButtonWasPushed(0);

            Console.ReadKey();
        }