Пример #1
0
        public static void Main(string[] args)
        {
            var copyContext1 = new CopyMachineContext();

            copyContext1.PutMoney(30);
            copyContext1.ChooseDevice(Device.FlashCard);
            copyContext1.ChooseDocument("lol");
            copyContext1.PrintDocument();
            copyContext1.ChooseDocument("kek");
            copyContext1.PrintDocument();
            Console.WriteLine(copyContext1.TakeChange());

            var copyContext2 = new CopyMachineContext();

            copyContext2.PutMoney(5);
            copyContext2.ChooseDevice(Device.FlashCard);
            copyContext2.ChooseDocument("lol");
            try
            {
                copyContext2.PrintDocument();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Пример #2
0
        public override int TakeChange(CopyMachineContext context)
        {
            var change = context.Money;

            context.Money    = 0;
            context.Device   = Device.NotSelected;
            context.Document = "";
            context.State    = new PrintDocumentState();
            return(change);
        }
Пример #3
0
 public override void PrintDocument(CopyMachineContext context)
 {
     if (context.Money - context.Price > 0)
     {
         context.Money -= context.Price;
         context.State  = new ChooseDocumentState();
     }
     else
     {
         throw new Exception("Not enough money");
     }
 }
Пример #4
0
 public override int TakeChange(CopyMachineContext context)
 {
     throw new System.NotImplementedException();
 }
Пример #5
0
 public override void ChooseDocument(CopyMachineContext context, string document)
 {
     context.Document = document;
     context.State    = new PrintDocumentState();
 }
Пример #6
0
 public virtual void PutMoney(CopyMachineContext context, int money)
 {
     throw new Exception(MessageError);
 }
Пример #7
0
 public virtual int TakeChange(CopyMachineContext context)
 {
     context.State = new PutMoneyState();
     return(0);
 }
Пример #8
0
 public virtual void PrintDocument(CopyMachineContext context)
 {
     throw new Exception(MessageError);
 }
Пример #9
0
 public virtual void ChooseDocument(CopyMachineContext context, string document)
 {
     throw new Exception(MessageError);
 }
Пример #10
0
 public virtual void ChooseDevice(CopyMachineContext context, Device device)
 {
     throw new Exception(MessageError);
 }
Пример #11
0
 public override void ChooseDevice(CopyMachineContext context, Device device)
 {
     context.Device = device;
     context.State  = new ChooseDocumentState();
 }
Пример #12
0
 public override void PutMoney(CopyMachineContext context, int money)
 {
     context.Money = money;
     context.State = new ChooseDeviceState();
 }