public override Settlement List(MarketPlace marketPlace) { Ensure.That(marketPlace).IsNotNull(); Ensure.That(marketPlace.StarCluster.Equals(Item.Location.GetStarCluster())); var settlement = new Settlement(); foreach (var sellOrder in marketPlace.SellOrders.For(Item).OrderBy(x => x.PricePerUnit)) { if (OutOfRange(sellOrder) || sellOrder.OutOfRange(this)) continue; if (sellOrder.PricePerUnit > PricePerUnit) continue; if (sellOrder.BlockSize > Quantity) continue; if (BuyFrom(sellOrder, settlement)) return marketPlace.Settle(settlement); } marketPlace.Add(this); return marketPlace.Settle(settlement); }