public void ProcessInventoryPage( ICollection <GemsBreakerSteamItems> processedItems, InventoryRootModel inventoryPage, Inventory inventory) { var items = inventory.ProcessInventoryPage(inventoryPage).ToArray(); var groupedItems = items.GroupBy( x => new { x.Description.MarketHashName, x.Description.IsTradable, x.Description.IsMarketable, x.Asset.Amount }).ToArray(); foreach (var group in groupedItems) { var existModel = processedItems.FirstOrDefault( item => item.ItemModel.Description.MarketHashName == group.Key.MarketHashName && item.ItemModel.Description.IsTradable == group.Key.IsTradable && item.ItemModel.Asset.Amount == group.Key.Amount); if (existModel != null) { existModel.ItemsList.AddRangeDispatch(group); existModel.RefreshCount(); } else { processedItems.AddDispatch(new GemsBreakerSteamItems(group.ToArray())); } } }
public void ProcessInventoryPage( ICollection <MarketSellModel> processedItems, InventoryRootModel inventoryPage, Inventory inventory) { var items = inventory.ProcessInventoryPage(inventoryPage).ToArray(); items = inventory.FilterInventory(items, true, false); var groupedItems = items.GroupBy(i => new { i.Description.MarketHashName, i.Asset.Amount }).ToArray(); foreach (var group in groupedItems) { var existModel = processedItems.FirstOrDefault( item => item.ItemModel.Description.MarketHashName == group.Key.MarketHashName && item.ItemModel.Asset.Amount == group.Key.Amount); if (existModel != null) { foreach (var groupItem in group.ToArray()) { existModel.ItemsList.Add(groupItem); } existModel.RefreshCount(); } else { processedItems.AddDispatch(new MarketSellModel(group.ToArray())); } } }