Пример #1
0
        public void GetSkinIdsByHeroIdTest()
        {
            Bundle bundle = new Bundle();

            bundle.AddHeroSkin("hero1", "heroSkinId1");
            bundle.AddHeroSkin("hero1", "heroSkinId2");
            bundle.AddHeroSkin("hero1", "heroSkinId3");
            bundle.AddHeroSkin("hero2", "heroSkinId1");
            bundle.AddHeroSkin("hero2", "heroSkinId2");

            List <string> heroSkinIds = bundle.GetSkinIdsByHeroId("hero1").ToList();

            Assert.AreEqual("heroSkinId2", heroSkinIds[1]);

            Assert.ThrowsException <KeyNotFoundException>(() => bundle.GetSkinIdsByHeroId("hero4"));
        }
Пример #2
0
        public void TryGetSkinIdsByHeroIdTest()
        {
            Bundle bundle = new Bundle();

            bundle.AddHeroSkin("hero1", "heroSkinId1");
            bundle.AddHeroSkin("hero1", "heroSkinId2");
            bundle.AddHeroSkin("hero1", "heroSkinId3");
            bundle.AddHeroSkin("hero2", "heroSkinId1");
            bundle.AddHeroSkin("hero2", "heroSkinId2");

            Assert.IsTrue(bundle.TryGetSkinIdsByHeroId("hero1", out IEnumerable <string>?values));
            List <string> heroSkinIds = values !.ToList();

            Assert.AreEqual("heroSkinId2", heroSkinIds[1]);

            Assert.IsFalse(bundle.TryGetSkinIdsByHeroId("hero5", out IEnumerable <string>?_));
        }
Пример #3
0
        private Bundle GetBundleData(string bundleId, JsonElement bundleElement)
        {
            Bundle bundle = new Bundle()
            {
                Id = bundleId,
            };

            if (bundleElement.TryGetProperty("name", out JsonElement name))
            {
                bundle.Name = name.GetString();
            }

            if (bundleElement.TryGetProperty("hyperlinkId", out JsonElement hyperlinkId))
            {
                bundle.HyperlinkId = hyperlinkId.GetString();
            }

            if (bundleElement.TryGetProperty("sortName", out JsonElement sortName))
            {
                bundle.SortName = sortName.GetString();
            }

            if (bundleElement.TryGetProperty("franchise", out JsonElement franchiseElement) && Enum.TryParse(franchiseElement.GetString(), out Franchise franchise))
            {
                bundle.Franchise = franchise;
            }
            else
            {
                bundle.Franchise = Franchise.Unknown;
            }

            if (bundleElement.TryGetProperty("event", out JsonElement eventName))
            {
                bundle.EventName = eventName.GetString();
            }

            if (bundleElement.TryGetProperty("releaseDate", out JsonElement releaseDateElement) && DateTime.TryParse(releaseDateElement.GetString(), out DateTime releaseDate))
            {
                bundle.ReleaseDate = releaseDate;
            }

            if (bundleElement.TryGetProperty("isDynamicContent", out JsonElement isDynamicContent))
            {
                bundle.IsDynamicContent = isDynamicContent.GetBoolean();
            }

            if (bundleElement.TryGetProperty("heroes", out JsonElement heroesElement))
            {
                foreach (JsonElement heroElement in heroesElement.EnumerateArray())
                {
                    string?heroValue = heroElement.GetString();
                    if (heroValue is not null)
                    {
                        bundle.HeroIds.Add(heroValue);
                    }
                }
            }

            if (bundleElement.TryGetProperty("skins", out JsonElement skinsElement))
            {
                foreach (JsonElement skinElement in skinsElement.EnumerateArray())
                {
                    foreach (JsonProperty skinProperties in skinElement.EnumerateObject())
                    {
                        string heroId = skinProperties.Name;

                        foreach (JsonElement heroSkinId in skinProperties.Value.EnumerateArray())
                        {
                            string?heroSkinIdValue = heroSkinId.GetString();
                            if (heroSkinIdValue is not null)
                            {
                                bundle.AddHeroSkin(skinProperties.Name, heroSkinIdValue);
                            }
                        }
                    }
                }
            }

            if (bundleElement.TryGetProperty("mounts", out JsonElement mountsElement))
            {
                foreach (JsonElement element in mountsElement.EnumerateArray())
                {
                    string?value = element.GetString();
                    if (value is not null)
                    {
                        bundle.MountIds.Add(value);
                    }
                }
            }

            if (bundleElement.TryGetProperty("image", out JsonElement image))
            {
                bundle.ImageFileName = image.GetString();
            }

            if (bundleElement.TryGetProperty("boostId", out JsonElement boostId))
            {
                bundle.BoostBonusId = boostId.GetString();
            }

            if (bundleElement.TryGetProperty("goldBonus", out JsonElement goldBonus))
            {
                bundle.GoldBonus = goldBonus.GetInt32();
            }

            if (bundleElement.TryGetProperty("gemsBonus", out JsonElement gemsBonus))
            {
                bundle.GemsBonus = gemsBonus.GetInt32();
            }

            if (bundleElement.TryGetProperty("lootChestBonus", out JsonElement lootChestBonus))
            {
                bundle.LootChestBonus = lootChestBonus.GetString();
            }

            GameStringDocument?.UpdateGameStrings(bundle);

            return(bundle);
        }