Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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());
        }