Пример #1
0
        public static int NormalizeEnumJson(string repoRoot, string[] jsonInputFile, string jsonOutputFile, string[] rename, string[] exclude)
        {
            var renames = CommandLineUtils.ConvertValuePairsToDictionary(rename);

            HashSet <string>  excludes    = new HashSet <string>(exclude);
            List <EnumObject> enumObjects = new List <EnumObject>();

            foreach (var inputFile in jsonInputFile)
            {
                enumObjects.AddRange(EnumObject.LoadFromFile(inputFile));
            }

            var newObjects = EnumObjectUtils.NormalizeEnumObjects(repoRoot, enumObjects, renames, excludes).ToArray();

            JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings();

            jsonSerializerSettings.NullValueHandling    = NullValueHandling.Ignore;
            jsonSerializerSettings.DefaultValueHandling = DefaultValueHandling.Ignore;

            var jsonText = JsonConvert.SerializeObject(newObjects, Formatting.Indented, jsonSerializerSettings);

            File.WriteAllText(jsonOutputFile, jsonText);

            Regex containsLowerCase = new Regex(@"[a-z]+");

            foreach (var obj in newObjects)
            {
                if (obj.name != null && containsLowerCase.IsMatch(obj.name))
                {
                    Console.WriteLine($"Warning: {obj.name} enum contains lower case. Add a better name or exclude it.");
                    Console.Write("  Members: ");
                    foreach (var member in obj.members.Take(3))
                    {
                        Console.Write(member.name);
                        Console.Write(' ');
                    }

                    Console.WriteLine();
                }
            }

            return(0);
        }