private async Task SetupRandomItems(HomeViewModel viewModel, IReadOnlyCollection <GameItemModel> gameItems) { var randomItems = gameItems .Where(x => !String.IsNullOrEmpty(x.Name.Trim()) && x.Name.Trim() != "Undefined" && !x.IsRecipe) .ToList(); var abilities = await db.GetItemAbilitiesAsync(); Random r = new Random(); GameItemViewModel itemViewModel1 = await GetRandomItem(r, randomItems, abilities); GameItemViewModel itemViewModel2 = await GetRandomItem(r, randomItems, abilities); GameItemViewModel itemViewModel3 = await GetRandomItem(r, randomItems, abilities); List <GameItemViewModel> randomGameItems = new List <GameItemViewModel>(); randomGameItems.Add(itemViewModel1); randomGameItems.Add(itemViewModel2); randomGameItems.Add(itemViewModel3); viewModel.RandomGameItems = randomGameItems.AsReadOnly(); }
private async Task <IReadOnlyCollection <GameItemViewModel> > GetGameItemsAsync(string itemName) { var items = await db.GetGameItemsAsync(); var itemsWithoutRecipes = items.Where(x => !x.IsRecipe); List <GameItemViewModel> gameItems = new List <GameItemViewModel>(); foreach (var item in itemsWithoutRecipes) { string localizedName = await db.GetLocalizationTextAsync(String.Format("DOTA_Tooltip_Ability_{0}", item.Name)); if (!String.IsNullOrEmpty(itemName)) { if (localizedName.ToLower().Contains(itemName.ToLower())) { gameItems.Add(new GameItemViewModel() { Cost = item.Cost, Name = localizedName, Description = await db.GetLocalizationTextAsync(String.Format("DOTA_Tooltip_ability_{0}_Description", item.Name)), Lore = await db.GetLocalizationTextAsync(String.Format("DOTA_Tooltip_ability_{0}_Lore", item.Name)), Id = item.Id, IsRecipe = item.IsRecipe, SecretShop = item.IsAvailableAtSecretShop, SideShop = item.IsAvailableAtSideShop, IconPath = String.Format("http://cdn.dota2.com/apps/dota2/images/items/{0}_lg.png", item.IsRecipe ? "recipe" : item.Name.Replace("item_", "")), }); } } else { gameItems.Add(new GameItemViewModel() { Cost = item.Cost, Name = localizedName, Description = await db.GetLocalizationTextAsync(String.Format("DOTA_Tooltip_ability_{0}_Description", item.Name)), Lore = await db.GetLocalizationTextAsync(String.Format("DOTA_Tooltip_ability_{0}_Lore", item.Name)), Id = item.Id, IsRecipe = item.IsRecipe, SecretShop = item.IsAvailableAtSecretShop, SideShop = item.IsAvailableAtSideShop, IconPath = String.Format("http://cdn.dota2.com/apps/dota2/images/items/{0}_lg.png", item.IsRecipe ? "recipe" : item.Name.Replace("item_", "")), }); } } var abilities = await db.GetItemAbilitiesAsync(); foreach (var itemViewModel in gameItems) { await AddAbilityToItemViewModelAsync(itemViewModel, abilities); } return(gameItems.AsReadOnly()); }