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")); }
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>?_)); }
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); }