public ControlUnit(Weight weight, Portioner portioner, List <IBin> bins, IAssignmentAlgorithm assignmentAlgorithm) { Weight = weight; Portioner = portioner; Bins = bins; _assignmentAlgorithm = assignmentAlgorithm; Weight.ItemWeighed += OnItemWeighedEvent; Portioner.ItemArrived += OnItemArrivedPortionerEvent; foreach (IBin bin in Bins) { bin.ItemArrived += CheckBinWeight; } }
private void OnItemArrivedPortionerEvent(object o, IItem item) { Portioner portioner = (o as Portioner); portioner?.Eject(item, Bins?.FirstOrDefault(b => b.BinNumber == item.AssignedBinNumber)); }