// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; using System.Collections.Generic; using System.IO; using System.Linq; using Newtonsoft.Json; namespace Microsoft.Extensions.WebEncoders { internal static class Entities { public static readonly IDictionary ParsedEntities = GetParsedEntities(); private static IDictionary GetParsedEntities() { // read all entries string allEntitiesText = ReadEntitiesJsonFile(); var deserializedRawData = new JsonSerializer().Deserialize>(new JsonTextReader(new StringReader(allEntitiesText))); // strip out all entries which aren't of the form "&entity;" foreach (var key in deserializedRawData.Keys.ToArray() /* dupe since we're mutating original structure */) { if (!key.StartsWith("&", StringComparison.Ordinal) || !key.EndsWith(";", StringComparison.Ordinal)) { deserializedRawData.Remove(key); } } return deserializedRawData; } private static string ReadEntitiesJsonFile() { return File.ReadAllText("entities.json"); } } }