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"); } }
public abstract void StartCleaning(MachineCleaning cleaningMachine);