コード例 #1
0
 private void DisplayCheckedDetail(IDetail detail, Task <bool> taskResult, ICheckMachine currentCheckMachines)
 {
     if (taskResult.Result == true)
     {
         display.WriteLine($"The CheckMachine \"{currentCheckMachines.Model}\" checked {detail.GetType().Name} №{detail.NumberOfDetail} - fine");
     }
     else
     {
         display.WriteLine($"The CheckMachine \"{currentCheckMachines.Model}\" checked {detail.GetType().Name} №{detail.NumberOfDetail} - trash");
     }
 }
コード例 #2
0
        private void Ititialize()
        {
            machine = new Machine("LifeLand", checkerContainer);
            machine.TurnOn();

            checkMachine  = new CheckMachine("Raven", checkerContainer);
            checkMachine1 = new CheckMachine("Cycle", checkerContainer);
            checkMachine2 = new CheckMachine("Eagle", checkerContainer);
            checkMachine3 = new CheckMachine("ZLD", checkerContainer);
            checkMachine.TurnOn();
            checkMachine1.TurnOn();
            checkMachine2.TurnOn();
            checkMachine3.TurnOn();

            listCheckMachines = new List <ICheckMachine>()
            {
                checkMachine, checkMachine1, checkMachine2, checkMachine3
            };

            conveyor = new Conveyor("StarField");
            conveyor.TurnOn();
        }
コード例 #3
0
        private async void CheckDetail(IDetail detail)
        {
            try
            {
                var tasksAndMachines = StartFourCheckMachines(detail);

                var listTasks = tasksAndMachines.Item1;
                var listCurrentCheckMachines = tasksAndMachines.Item2;

                Task <bool> resultTask = await CheckAndCancelTasks(listTasks, listCurrentCheckMachines);

                ICheckMachine currentCheckMachine = GetLastCurrentCheckMachine(resultTask, listTasks, listCurrentCheckMachines);

                DisplayCheckedDetail(detail, resultTask, currentCheckMachine);
            }
            catch (AggregateException ex)
            {
                foreach (var oneException in ex.InnerExceptions)
                {
                    display.WriteLine(oneException.Message);
                }
            }
        }