private void Parse() { EmoticonPackParser emoticonPackParser = new EmoticonPackParser(XmlDataService); JohannaEmoticonPack2 = emoticonPackParser.Parse("JohannaEmoticonPack2"); DeputyVallaPack1 = emoticonPackParser.Parse("DeputyVallaPack1"); }
/// <summary> /// Updates the <paramref name="emoticonPack"/>'s localized gamestrings to the currently selected <see cref="Localization"/>. /// </summary> /// <param name="emoticonPack">The data to be updated.</param> /// <exception cref="ArgumentNullException"><paramref name="emoticonPack"/> is <see langword="null"/>.</exception> public void UpdateGameStrings(EmoticonPack emoticonPack) { if (emoticonPack is null) { throw new ArgumentNullException(nameof(emoticonPack)); } JsonElement element = JsonGameStringDocument.RootElement; if (element.TryGetProperty("gamestrings", out JsonElement gameStringElement)) { if (gameStringElement.TryGetProperty("emoticonpack", out JsonElement keyValue)) { if (TryGetValueFromJsonElement(keyValue, "name", emoticonPack.Id, out JsonElement nameElement)) { emoticonPack.Name = nameElement.GetString(); } if (TryGetValueFromJsonElement(keyValue, "sortName", emoticonPack.Id, out JsonElement sortNameElement)) { emoticonPack.SortName = sortNameElement.GetString(); } if (TryGetValueFromJsonElement(keyValue, "description", emoticonPack.Id, out JsonElement descriptionElement)) { emoticonPack.Description = SetTooltipDescription(descriptionElement.GetString()); } } } }
public void UpdateGameStringsThrowArgumentNullException() { EmoticonPack emoticonPack = new EmoticonPack { Id = "AbathurEmoticonPack2", }; Assert.ThrowsException <ArgumentNullException>(() => emoticonPack.UpdateGameStrings(null !)); }
/// <summary> /// Updates the localized gamestrings to the selected <see cref="Localization"/>. /// </summary> /// <param name="emoticonPack">The data to be updated.</param> /// <param name="gameStringDocument">Instance of a <see cref="GameStringDocument"/>.</param> /// <exception cref="ArgumentNullException"><paramref name="gameStringDocument"/> is null.</exception> public static void UpdateGameStrings(this EmoticonPack emoticonPack, GameStringDocument gameStringDocument) { if (gameStringDocument is null) { throw new ArgumentNullException(nameof(gameStringDocument)); } gameStringDocument.UpdateGameStrings(emoticonPack); }
public void UpdateGameStringEmoticonPackTest() { using EmoticonPackDataDocument dataDocument = _heroesDataDirectory.EmoticonPackData(new HeroesDataVersion(2, 47, 3, 76124), true, Localization.KOKR); EmoticonPack data = dataDocument.GetEmoticonPackById("CassiaEmoticonPack2"); Assert.AreEqual("카시아 팩 2", data.Name); _heroesDataDirectory.UpdateGameString(data, new HeroesDataVersion(2, 48, 4, 77407), Localization.ENUS); Assert.AreEqual("emotPackName", data.Name); }
/// <summary> /// Updates the gamestrings of <paramref name="emoticonPack"/>. /// </summary> /// <param name="emoticonPack">The data who's gamestrings will be updated.</param> /// <param name="version">The version directory to load the gamestrings from.</param> /// <param name="localization">The <see cref="Localization"/> of the gamestrings.</param> /// <exception cref="ArgumentNullException"><paramref name="emoticonPack"/> is null.</exception> /// <exception cref="ArgumentNullException"><paramref name="version"/> is null.</exception> public void UpdateGameString(EmoticonPack emoticonPack, HeroesDataVersion version, Localization localization) { ArgumentNullException.ThrowIfNull(emoticonPack, nameof(emoticonPack)); ArgumentNullException.ThrowIfNull(version, nameof(version)); (_, string gameStringPath) = GetDataAndGameStringPaths(version, true, localization, _emoticonPackFileTemplateName, false, true); using GameStringDocument gameStringDocument = GameStringDocument.Parse(gameStringPath); emoticonPack.UpdateGameStrings(gameStringDocument); }
protected void AddLocalizedGameString(EmoticonPack emoticonPack) { GameStringWriter.AddEmoticonPackName(emoticonPack.Id, emoticonPack.Name); if (emoticonPack.Description != null) { GameStringWriter.AddEmoticonPackDescription(emoticonPack.Id, GetTooltip(emoticonPack.Description, FileOutputOptions.DescriptionType)); } GameStringWriter.AddEmoticonPackSortName(emoticonPack.Id, emoticonPack.SortName); }
protected override JProperty MainElement(EmoticonPack emoticonPack) { if (FileOutputOptions.IsLocalizedText) { AddLocalizedGameString(emoticonPack); } JObject emoticonObject = new JObject(); if (!string.IsNullOrEmpty(emoticonPack.Name) && !FileOutputOptions.IsLocalizedText) { emoticonObject.Add("name", emoticonPack.Name); } if (!string.IsNullOrEmpty(emoticonPack.HyperlinkId)) { emoticonObject.Add("hyperlinkId", emoticonPack.HyperlinkId); } emoticonObject.Add("rarity", emoticonPack.Rarity.ToString()); if (!string.IsNullOrEmpty(emoticonPack.CollectionCategory)) { emoticonObject.Add("category", emoticonPack.CollectionCategory); } if (!string.IsNullOrEmpty(emoticonPack.EventName)) { emoticonObject.Add("event", emoticonPack.EventName); } if (emoticonPack.ReleaseDate.HasValue) { emoticonObject.Add("releaseDate", emoticonPack.ReleaseDate.Value.ToString("yyyy-MM-dd")); } if (!string.IsNullOrEmpty(emoticonPack.SortName) && !FileOutputOptions.IsLocalizedText) { emoticonObject.Add("sortName", emoticonPack.SortName); } if (!string.IsNullOrEmpty(emoticonPack.Description?.RawDescription) && !FileOutputOptions.IsLocalizedText) { emoticonObject.Add("description", GetTooltip(emoticonPack.Description, FileOutputOptions.DescriptionType)); } if (emoticonPack.EmoticonIds != null && emoticonPack.EmoticonIds.Any()) { emoticonObject.Add(new JProperty("emoticons", emoticonPack.EmoticonIds)); } return(new JProperty(emoticonPack.Id, emoticonObject)); }
private static void BasicCatSpooky18PackAsserts(EmoticonPack emoticonPack) { Assert.AreEqual("CatSpooky18Pack", emoticonPack.Id); Assert.AreEqual("Cursed Cats Emoji Pack", emoticonPack.Name); Assert.AreEqual("CatSpooky18Pack", emoticonPack.HyperlinkId); Assert.AreEqual(Rarity.Common, emoticonPack.Rarity); Assert.AreEqual("SeasonalEvents", emoticonPack.CollectionCategory); Assert.AreEqual("HallowsEnd", emoticonPack.EventName); Assert.AreEqual(new DateTime(2018, 9, 25), emoticonPack.ReleaseDate); Assert.IsNull(emoticonPack.Description?.RawDescription); Assert.AreEqual(5, emoticonPack.EmoticonIds.Count); Assert.AreEqual("cat_dealwithit_anim", emoticonPack.EmoticonIds.ToList()[0]); }
private static void BasicCassiaEmoticonPack2Asserts(EmoticonPack emoticonPack) { Assert.AreEqual("CassiaEmoticonPack2", emoticonPack.Id); Assert.AreEqual("Cassia Pack 2", emoticonPack.Name); Assert.AreEqual("CassiaEmoticonPack2", emoticonPack.HyperlinkId); Assert.AreEqual(Rarity.Common, emoticonPack.Rarity); Assert.AreEqual("Diablo", emoticonPack.CollectionCategory); Assert.IsNull(emoticonPack.EventName); Assert.AreEqual(new DateTime(2017, 3, 14), emoticonPack.ReleaseDate); Assert.AreEqual("Cassia emojis that can be used to express emotions or ideas in chat. Hover over an emoji below to view its text command.", emoticonPack.Description?.RawDescription); Assert.AreEqual(5, emoticonPack.EmoticonIds.Count); Assert.AreEqual("cassia_angry", emoticonPack.EmoticonIds.ToList()[0]); }
public void UpdateGameStringsTest() { using GameStringDocument gameStringDocument = GameStringDocument.Parse(LoadEnusLocalizedStringData()); EmoticonPack emoticonPack = new EmoticonPack { Id = "AbathurEmoticonPack2", }; emoticonPack.UpdateGameStrings(gameStringDocument); Assert.AreEqual("Abathur emojis that can be used to express emotions or ideas in chat. Hover over an emoji below to view its text command.", emoticonPack.Description !.RawDescription); }
protected override XElement MainElement(EmoticonPack emoticonPack) { if (FileOutputOptions.IsLocalizedText) { AddLocalizedGameString(emoticonPack); } return(new XElement( XmlConvert.EncodeName(emoticonPack.Id), string.IsNullOrEmpty(emoticonPack.Name) || FileOutputOptions.IsLocalizedText ? null : new XAttribute("name", emoticonPack.Name), string.IsNullOrEmpty(emoticonPack.HyperlinkId) ? null : new XAttribute("hyperlinkId", emoticonPack.HyperlinkId), string.IsNullOrEmpty(emoticonPack.CollectionCategory) ? null : new XAttribute("category", emoticonPack.CollectionCategory), string.IsNullOrEmpty(emoticonPack.EventName) ? null : new XAttribute("event", emoticonPack.EventName), emoticonPack.ReleaseDate.HasValue ? new XAttribute("releaseDate", emoticonPack.ReleaseDate.Value.ToString("yyyy-MM-dd")) : null, string.IsNullOrEmpty(emoticonPack.SortName) || FileOutputOptions.IsLocalizedText ? null : new XElement("SortName", emoticonPack.SortName), string.IsNullOrEmpty(emoticonPack.Description?.RawDescription) || FileOutputOptions.IsLocalizedText ? null : new XElement("Description", GetTooltip(emoticonPack.Description, FileOutputOptions.DescriptionType)), emoticonPack.EmoticonIds != null && emoticonPack.EmoticonIds.Any() ? new XElement("Emoticons", emoticonPack.EmoticonIds.Select(x => new XElement("Emoticon", x))) : null)); }
/// <summary> /// Updates the localized gamestrings to the selected <see cref="Localization"/>. /// </summary> /// <param name="emoticonPack">The data to be updated.</param> /// <param name="gameStringDocument">Instance of a <see cref="GameStringDocument"/>.</param> /// <exception cref="ArgumentNullException"><paramref name="gameStringDocument"/> is null.</exception> public static void UpdateGameStrings(this EmoticonPack emoticonPack, GameStringDocument gameStringDocument) { ArgumentNullException.ThrowIfNull(gameStringDocument, nameof(gameStringDocument)); gameStringDocument.UpdateGameStrings(emoticonPack); }
private EmoticonPack GetEmoticonPackData(string emoticonPackId, JsonElement emoticonPackElement) { EmoticonPack emoticonPack = new EmoticonPack() { Id = emoticonPackId, }; if (emoticonPackElement.TryGetProperty("name", out JsonElement expression)) { emoticonPack.Name = expression.GetString(); } if (emoticonPackElement.TryGetProperty("hyperlinkId", out JsonElement hyperlinkId)) { emoticonPack.HyperlinkId = hyperlinkId.GetString(); } if (emoticonPackElement.TryGetProperty("rarity", out JsonElement rarityElement) && Enum.TryParse(rarityElement.GetString(), out Rarity rarity)) { emoticonPack.Rarity = rarity; } if (emoticonPackElement.TryGetProperty("category", out JsonElement category)) { emoticonPack.CollectionCategory = category.GetString(); } if (emoticonPackElement.TryGetProperty("event", out JsonElement eventElement)) { emoticonPack.EventName = eventElement.GetString(); } if (emoticonPackElement.TryGetProperty("releaseDate", out JsonElement releaseDateElement) && DateTime.TryParse(releaseDateElement.GetString(), out DateTime releaseDate)) { emoticonPack.ReleaseDate = releaseDate; } if (emoticonPackElement.TryGetProperty("sortName", out JsonElement sortName)) { emoticonPack.SortName = sortName.GetString(); } if (emoticonPackElement.TryGetProperty("description", out JsonElement description)) { emoticonPack.Description = SetTooltipDescription(description.GetString(), Localization); } if (emoticonPackElement.TryGetProperty("emoticons", out JsonElement emoticons)) { foreach (JsonElement emoticon in emoticons.EnumerateArray()) { string?emoticonValue = emoticon.GetString(); if (emoticonValue is not null) { emoticonPack.EmoticonIds.Add(emoticonValue); } } } GameStringDocument?.UpdateGameStrings(emoticonPack); return(emoticonPack); }