private void Parse()
        {
            EmoticonPackParser emoticonPackParser = new EmoticonPackParser(XmlDataService);

            JohannaEmoticonPack2 = emoticonPackParser.Parse("JohannaEmoticonPack2");
            DeputyVallaPack1     = emoticonPackParser.Parse("DeputyVallaPack1");
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 5
0
    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);
        }
Exemplo n.º 8
0
        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);
    }
Exemplo n.º 14
0
        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);
        }