Esempio n. 1
0
        private IEnumerable <MemberDeclarationSyntax> GenerateFields()
        {
            yield return(CodeModel.TypenameProperty(_inputObjectType.Name));

            var fields = _schema.GetInputFields(_inputObjectType);

            foreach (var fieldDefinition in fields)
            {
                var fieldName     = fieldDefinition.Key.ToFieldResolverName();
                var fieldTypeName = CodeModel.SelectFieldTypeName(_schema, _inputObjectType, fieldDefinition);
                yield return(PropertyDeclaration(
                                 IdentifierName(fieldTypeName),
                                 Identifier(fieldName))
                             .WithModifiers(
                                 TokenList(
                                     Token(SyntaxKind.PublicKeyword)))
                             .WithLeadingTrivia(CodeModel.ToXmlComment(fieldDefinition.Value.Description))
                             .WithAccessorList(
                                 AccessorList(
                                     List(
                                         new[]
                {
                    AccessorDeclaration(
                        SyntaxKind.GetAccessorDeclaration)
                    .WithSemicolonToken(
                        Token(SyntaxKind.SemicolonToken)),
                    AccessorDeclaration(
                        SyntaxKind.SetAccessorDeclaration)
                    .WithSemicolonToken(
                        Token(SyntaxKind.SemicolonToken))
                }))));
            }

            yield return(GenerateRead());
        }
        private MemberDeclarationSyntax GenerateProperty(KeyValuePair <string, IField> field)
        {
            var propertyName = field.Key.ToFieldResolverName();
            var typeName     = CodeModel.SelectFieldTypeName(_schema, _interfaceType, field);

            return(PropertyDeclaration(
                       IdentifierName(typeName),
                       Identifier(propertyName))
                   .WithModifiers(
                       TokenList(
                           Token(SyntaxKind.PublicKeyword)))
                   .WithLeadingTrivia(CodeModel.ToXmlComment(field.Value.Description))
                   .WithAccessorList(
                       AccessorList(
                           List(
                               new[]
            {
                AccessorDeclaration(
                    SyntaxKind.GetAccessorDeclaration)
                .WithSemicolonToken(
                    Token(SyntaxKind.SemicolonToken)),

                /*AccessorDeclaration(
                 *      SyntaxKind.SetAccessorDeclaration)
                 *  .WithSemicolonToken(
                 *      Token(SyntaxKind.SemicolonToken))*/
            }))));
        }
        public MemberDeclarationSyntax Generate()
        {
            var modelName = _unionType.Name.ToModelInterfaceName();

            return(InterfaceDeclaration(modelName)
                   .WithModifiers(
                       TokenList(
                           Token(SyntaxKind.PublicKeyword),
                           Token(SyntaxKind.PartialKeyword)))
                   .WithLeadingTrivia(CodeModel.ToXmlComment(_unionType.Description))
                   .WithMembers(
                       List(GenerateProperties())));
        }
        public MemberDeclarationSyntax Generate()
        {
            var modelName        = _objectType.Name.ToModelName();
            var classDeclaration = ClassDeclaration(modelName)

                                   .WithModifiers(
                TokenList(
                    Token(SyntaxKind.PublicKeyword),
                    Token(SyntaxKind.PartialKeyword)))
                                   .WithLeadingTrivia(CodeModel.ToXmlComment(_objectType.Description))
                                   .WithMembers(
                List(GenerateProperties()));

            var baseList = WithInterfaces(out var count);

            if (count > 0)
            {
                classDeclaration = classDeclaration.WithBaseList(baseList);
            }

            return(classDeclaration);
        }