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); }