private void GenerateAdditionalTypeFromEnumHint()

in src/Json.Schema.ToDotNet/DataModelGenerator.cs [360:403]


        private void GenerateAdditionalTypeFromEnumHint(EnumHint enumHint, JsonSchema schema)
        {
            if (enumHint.AllowMemberCountMismatch == false
                && enumHint.MemberNames != null
                && schema.Enum != null
                && enumHint.MemberNames.Length != schema.Enum.Count)
            {
                throw Error.CreateException(
                                Resources.ErrorMismatchedEnumCount,
                                nameof(EnumHint),
                                enumHint.TypeName,
                                enumHint.MemberNames.Length,
                                schema.Enum.Count);
            }

            var enumNames = new List<string>();
            if (!string.IsNullOrWhiteSpace(enumHint.ZeroValueName))
            {
                enumNames.Add(enumHint.ZeroValueName);
            }

            if (enumHint.MemberNames != null)
            {
                enumNames.AddRange(enumHint.MemberNames);
            }
            else
            {
                enumNames.AddRange(schema.Enum.Select(e => e.ToString()));
            }

            var enumTypeSchema = new JsonSchema
            {
                Description = enumHint.Description ?? schema.Description,
                Enum = enumNames.Cast<object>().ToList()
            };

            var generator = new EnumGenerator(enumTypeSchema, _settings.TypeNameSuffix, _settings.HintDictionary);
            _pathToFileContentsDictionary[enumHint.TypeName + _settings.TypeNameSuffix] =
                generator.Generate(
                    _settings.SuffixedNamespaceName,
                    enumHint.TypeName,
                    _settings.CopyrightNotice,
                    enumTypeSchema.Description);
        }