public override void AddMembers()

in src/Json.Schema.ToDotNet/EnumGenerator.cs [44:95]


        public override void AddMembers()
        {
            if (Schema?.Enum.Count > 0)
            {
                EnumHint enumHint = GetEnumHintForType(TypeName);
                int[] enumValues = enumHint?.MemberValues;
                bool isFlagsEnum = enumHint?.Flags == true;

                var enumDeclaration = TypeDeclaration as EnumDeclarationSyntax;

                var enumMembers = new List<EnumMemberDeclarationSyntax>();

                int enumValueIndexOffset = enumHint?.HasZeroValue == true ? 1 : 0;


                for (int i = 0; i < Schema.Enum.Count; ++i)
                {
                    EqualsValueClauseSyntax equalsValueClause = null;
                    int? enumValue = null;
                    if (ShouldSupplyValueFor(i, enumHint?.HasZeroValue == true))
                    {
                        if (enumValues != null)
                        {
                            enumValue = enumValues[i - enumValueIndexOffset];
                        }
                        else if (isFlagsEnum)
                        {
                            enumValue = (int)Math.Pow(2, i - 1);
                        }
                    }

                    if (enumValue.HasValue)
                    {
                        equalsValueClause = SyntaxFactory.EqualsValueClause(
                            SyntaxFactory.LiteralExpression(
                                SyntaxKind.NumericLiteralExpression,
                                SyntaxFactory.Literal(enumValue.Value)));
                    }

                    string enumName = Schema.Enum[i].ToString().ToPascalCase();

                    enumMembers.Add(
                        SyntaxFactory.EnumMemberDeclaration(
                            default(SyntaxList<AttributeListSyntax>),
                            SyntaxFactory.Identifier(enumName),
                            equalsValueClause));

                }

                TypeDeclaration = enumDeclaration.AddMembers(enumMembers.ToArray());
            }
        }