public override void Move() { this.Stop(); if (CanMove()) { if (lastBaggage != null) { NextNode.PassBaggage(lastBaggage); } for (int index = conveyorBelt.Length - 1; index > 0; index--) { conveyorBelt[index] = conveyorBelt[index - 1]; conveyorBelt[index - 1] = null; } } else { NextNode.OnNodeStatusChangedToFree += Move; return; } NextNode.OnNodeStatusChangedToFree -= Move; Status = BaggageStatus.Free; this.Start(); }
private void Move() { if (NextNode.NodeStatus == NodeStatus.Free) { NextNode.PassBaggage(currentBag); NextNode.OnNodeStatusChangedToFree -= Move; NodeStatus = NodeStatus.Free; } else { NextNode.OnNodeStatusChangedToFree -= Move; NextNode.OnNodeStatusChangedToFree += Move; } }
public override void ProcessBaggage() { if (NextNode.Status == BaggageStatus.Free) { NextNode.PassBaggage(baggage); Status = BaggageStatus.Free; if (baggageInCheckIn == 1) { startOfBaggageTransfer = DateTime.Now; } NextNode.OnNodeStatusChangedToFree -= ProcessBaggage; } else { NextNode.OnNodeStatusChangedToFree += ProcessBaggage; } }
public override void ProcessBaggage() { if (NextNode.Status == BaggageStatus.Free) { if (baggage.Secure == 2 || baggage.Secure == 7) { baggageAgainstSecurityPolicy.Enqueue(baggage); NextNode.OnNodeStatusChangedToFree -= ProcessBaggage; } else { NextNode.PassBaggage(baggage); NextNode.OnNodeStatusChangedToFree -= ProcessBaggage; } } else { NextNode.OnNodeStatusChangedToFree += ProcessBaggage; } Status = BaggageStatus.Free; }