Ejemplo n.º 1
0
        public override void StartCleaning(MachineCleaning cleaningMachine)
        {
            var cleanProcess = Processes
                               .OfType <ProcessCleaning>()
                               .FirstOrDefault();

            if (cleanProcess == null)
            {
                throw new Exception("Order not for CLEANING");
            }

            switch (CurrentProcess)
            {
            case ProcessPressing pressing:
                if (!pressing.EndTime.HasValue)
                {
                    throw new Exception($"Order is currently being pressed on Presser {pressing.MachinePresser.Name}");
                }

                pressing.IsCurrent = false;

                cleanProcess.StartTime = DateTime.Now;
                cleanProcess.MachineId = cleaningMachine.Id;
                cleanProcess.IsCurrent = true;
                break;

            case ProcessCleaning cleaning:
                if (cleaning.EndTime.HasValue)
                {
                    throw new Exception("Order has already been CLEANED");
                }
                break;

            default:
                throw new Exception("Order not valid for CLEANING");
            }
        }
Ejemplo n.º 2
0
 public abstract void StartCleaning(MachineCleaning cleaningMachine);