public async Task <LayoutDto> LoadLayoutAsync() { var playerCards = _logParser.ParsePlayerCards(); var playerDecks = ParsePlayerDecks() .Where(d => !d.Name.Contains("?=?")); var collectionCards = await CalculateCollectionCardsAsync(playerCards, playerDecks); var decks = CalculateDecks(playerDecks, collectionCards); collectionCards.ForEach(cc => cc.WildcardWorthiness = Calculations.CalculateWildcardWorthiness(cc, decks)); var inventory = ParseInventory(); inventory.WildcardRequirements = CalculateWildcardRequirements(collectionCards); var historyTab = _history.CalculateHistoryTabDto(collectionCards); var dto = new LayoutDto { Inventory = inventory, Tabs = new TabsDto { HistoryTab = historyTab, }, CollectionCards = collectionCards, Decks = decks, }; return(dto); }