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()
{ }
}
}