Example #1
0
 public override void Pay(CopyMachine machine, int money)
 {
     base.Pay(machine, money);
     if (machine.Money >= machine.Cost)
     {
         machine.State = new PaidState();
     }
 }
Example #2
0
        public virtual int ReturnChange(CopyMachine machine)
        {
            int change = machine.Money;

            machine.Money = 0;
            machine.State = new UnpaidState();
            return(change);
        }
Example #3
0
 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();
     }
 }
Example #4
0
        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()}.");
        }
Example #5
0
 public override void SelectFile(CopyMachine machine)
 {
     Console.WriteLine("Machine doesn't have enough money for copy!");
 }
Example #6
0
 public virtual void Close(CopyMachine machine)
 {
     machine.State = new UnpaidState();
 }
Example #7
0
 public abstract void PrintFile(CopyMachine machine);
Example #8
0
 public abstract void SelectFile(CopyMachine machine);
Example #9
0
 public virtual void Pay(CopyMachine machine, int money)
 {
     machine.Money += money;
     Console.WriteLine($"You paid {money}. Now machine has {machine.Money}.");
 }
Example #10
0
 public override void PrintFile(CopyMachine machine)
 {
     Console.WriteLine("You have already printed this file!");
 }
Example #11
0
 public override void PrintFile(CopyMachine machine)
 {
     Console.WriteLine($"It costs {machine.Cost}. Let's print it . . .");
     machine.Money -= machine.Cost;
     machine.State  = new PrintFileState();
 }
Example #12
0
 public override void SelectFile(CopyMachine machine)
 {
     Console.WriteLine("You have already selected file!");
 }
Example #13
0
 public override void PrintFile(CopyMachine machine)
 {
     Console.WriteLine("You didn't select file!");
 }
Example #14
0
 public override void SelectFile(CopyMachine machine)
 {
     Console.WriteLine("Let's select some file . . .");
     machine.State = new SelectFileState();
 }