public override void Pay(CopyMachine machine, int money) { base.Pay(machine, money); if (machine.Money >= machine.Cost) { machine.State = new PaidState(); } }
public virtual int ReturnChange(CopyMachine machine) { int change = machine.Money; machine.Money = 0; machine.State = new UnpaidState(); return(change); }
public override void SelectFile(CopyMachine machine) { if (machine.Money >= machine.Cost) { Console.WriteLine("Let's select another file . . ."); machine.State = new SelectFileState(); } else { Console.WriteLine("Machine doesn't have enough money for copy!"); machine.State = new UnpaidState(); } }
static void Main(string[] args) { var copyMachine = new CopyMachine(); copyMachine.SelectFile(); // Machine doesn't have anough money for copy! copyMachine.Pay(22); // You paid 22. Now machine has 22. copyMachine.PrintFile(); // You didn't select file! copyMachine.SelectFile(); // Let's select some file . . . copyMachine.SelectFile(); // You have already selected file! copyMachine.PrintFile(); // It costs 10. Let's print it . . . copyMachine.PrintFile(); // You have already printed this file! copyMachine.SelectFile(); // Let's select another file . . . copyMachine.PrintFile(); // It costs 10. Let's print it . . . copyMachine.Pay(5); // You paid 5. Now machine has 7. copyMachine.SelectFile(); // Machine doesn't have anough money for copy! Console.WriteLine($"There's your change: {copyMachine.ReturnChange()}."); }
public override void SelectFile(CopyMachine machine) { Console.WriteLine("Machine doesn't have enough money for copy!"); }
public virtual void Close(CopyMachine machine) { machine.State = new UnpaidState(); }
public abstract void PrintFile(CopyMachine machine);
public abstract void SelectFile(CopyMachine machine);
public virtual void Pay(CopyMachine machine, int money) { machine.Money += money; Console.WriteLine($"You paid {money}. Now machine has {machine.Money}."); }
public override void PrintFile(CopyMachine machine) { Console.WriteLine("You have already printed this file!"); }
public override void PrintFile(CopyMachine machine) { Console.WriteLine($"It costs {machine.Cost}. Let's print it . . ."); machine.Money -= machine.Cost; machine.State = new PrintFileState(); }
public override void SelectFile(CopyMachine machine) { Console.WriteLine("You have already selected file!"); }
public override void PrintFile(CopyMachine machine) { Console.WriteLine("You didn't select file!"); }
public override void SelectFile(CopyMachine machine) { Console.WriteLine("Let's select some file . . ."); machine.State = new SelectFileState(); }