public RequiredProductFlattenerResponse GetFlattenedInventory(RequiredProductFlattenerRequest requiredProductFlattenerRequest) { _productTypes = requiredProductFlattenerRequest.ProductTypes; _cityStorage = requiredProductFlattenerRequest.CityStorage == null ? new CityStorage { CurrentInventory = new Product[0] } : requiredProductFlattenerRequest.CityStorage.Clone(); // var flattenedList = RequiredProductFlattenerRequest.Products.SelectMany(upgrade => GetFlattenedInventory(upgrade.Products)).ToArray(); var flattenedList = GetFlattenedInventory(requiredProductFlattenerRequest.Products); return new RequiredProductFlattenerResponse { Products = flattenedList }; }
private RequiredProductFlattenerResponse GetFlattenedProductRequirementList(BuildingUpgradeProductConsoldatorRequest request, CityStorage cityStorage) { var inventoryFlattenerRequest = new RequiredProductFlattenerRequest { Products = request.BuildingUpgrades.Where(x=>x.CalculateInBuildingUpgrades).SelectMany(x=>x.Products).ToArray(), ProductTypes = _productTypes, CityStorage = cityStorage }; return _requiredProductFlattener.GetFlattenedInventory(inventoryFlattenerRequest); }