public override void PrintMore(CopyMachineContext context, bool printMore) { if (printMore) { context.State = new SelectFileState(); } else { context.State = new GetChangeState(); } }
public override void Print(CopyMachineContext context) { if (context.Money - context.Cost < 0) { Console.WriteLine("Not enough money"); context.State = new GetChangeState();; } else { Console.WriteLine($"Printing {context.FileName} from {context.Device}..."); context.Money -= context.Cost; context.State = new PrintMoreState(); } }
static void Main(string[] args) { var copyMachine = new CopyMachineContext(); copyMachine.GetChange(); // Wrong operation copyMachine.PutMoney(100); copyMachine.SelectDevice("USB"); copyMachine.SelectFile("Cats.jpg"); copyMachine.Print(); // Printing Cats.jpg from USB... copyMachine.PrintMore(true); copyMachine.SelectFile("AnotherCats.jpg"); copyMachine.Print(); // Printing AnotherCats.jpg from USB... copyMachine.PrintMore(false); copyMachine.GetChange(); // Your change is 80 }
public virtual void SelectFile(CopyMachineContext context, string fileName) { Console.WriteLine("Wrong Operation"); }
public virtual void SelectDevice(CopyMachineContext context, string device) { Console.WriteLine("Wrong Operation"); }
public virtual void PutMoney(CopyMachineContext context, int money) { Console.WriteLine("Wrong Operation"); }
public virtual void PrintMore(CopyMachineContext context, bool printMore) { Console.WriteLine("Wrong Operation"); }
public virtual void Print(CopyMachineContext context) { Console.WriteLine("Wrong Operation"); }
public override void GetChange(CopyMachineContext context) { Console.WriteLine($"Your change is {context.Money}"); context.Money = 0; context.State = new InitState(); }
public override void SelectFile(CopyMachineContext context, string fileName) { context.FileName = fileName; context.State = new PrintState(); }
public override void SelectDevice(CopyMachineContext context, string device) { context.Device = device; context.State = new SelectFileState(); }
public override void PutMoney(CopyMachineContext context, int money) { context.Money = money; context.State = new SelectDeviceState(); }