public SortedSet <Rack> SortProductsOnRacks(RacksAndProductsData racksAndProductsData) { var racksBySize = new SortedSet <Rack>(racksAndProductsData.Racks); var productsByQuantity = new SortedSet <Product>(racksAndProductsData.ProductsQuantity .Select(x => new Product(x.Key, x.Value))); return(PlaceProductsInRacks(racksBySize, productsByQuantity)); }
private static RacksAndProductsData ParseRacksWithProducts(string[] inputLines, int racksCount) { var data = new RacksAndProductsData(); var currentLine = 2; for (var i = 0; i < racksCount; i++) { var rack = ParseRack(inputLines, currentLine++); var products = ParseProducts(inputLines, currentLine, rack); data.AddRack(rack); data.AddProducts(products); currentLine += rack.Height + 1; } return(data); }