Example #1
0
 public override void PrintMore(CopyMachineContext context, bool printMore)
 {
     if (printMore)
     {
         context.State = new SelectFileState();
     }
     else
     {
         context.State = new GetChangeState();
     }
 }
Example #2
0
 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();
     }
 }
Example #3
0
        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
        }
Example #4
0
 public virtual void SelectFile(CopyMachineContext context, string fileName)
 {
     Console.WriteLine("Wrong Operation");
 }
Example #5
0
 public virtual void SelectDevice(CopyMachineContext context, string device)
 {
     Console.WriteLine("Wrong Operation");
 }
Example #6
0
 public virtual void PutMoney(CopyMachineContext context, int money)
 {
     Console.WriteLine("Wrong Operation");
 }
Example #7
0
 public virtual void PrintMore(CopyMachineContext context, bool printMore)
 {
     Console.WriteLine("Wrong Operation");
 }
Example #8
0
 public virtual void Print(CopyMachineContext context)
 {
     Console.WriteLine("Wrong Operation");
 }
Example #9
0
 public override void GetChange(CopyMachineContext context)
 {
     Console.WriteLine($"Your change is {context.Money}");
     context.Money = 0;
     context.State = new InitState();
 }
Example #10
0
 public override void SelectFile(CopyMachineContext context, string fileName)
 {
     context.FileName = fileName;
     context.State    = new PrintState();
 }
Example #11
0
 public override void SelectDevice(CopyMachineContext context, string device)
 {
     context.Device = device;
     context.State  = new SelectFileState();
 }
Example #12
0
 public override void PutMoney(CopyMachineContext context, int money)
 {
     context.Money = money;
     context.State = new SelectDeviceState();
 }