protected virtual IEnumerable <ConstructorDeclarationSyntax> GenerateConstructors(string className) { yield return(ConstructorDeclaration(className) .AddModifiers(Token(SyntaxKind.PublicKeyword)) .AddParameterListParameters( Parameter(Identifier("httpClient")) .WithType(WellKnownTypes.System.Net.Http.HttpClient.Name), Parameter(Identifier("typeSerializerRegistry")) .WithType(_serializationNamespace.ITypeSerializerRegistry), Parameter(Identifier("authenticators")) .WithType(_authenticationNamespace.Authenticators)) .WithBody(Block( ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(HttpClientFieldName), MethodHelpers.ArgumentOrThrowIfNull("httpClient"))), ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(TypeSerializerRegistryFieldName), MethodHelpers.ArgumentOrThrowIfNull("typeSerializerRegistry"))), ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(AuthenticatorsFieldName), MethodHelpers.ArgumentOrThrowIfNull("authenticators")))))); }
protected override IEnumerable <MemberDeclarationSyntax> GenerateAdditionalMembers(string className) { yield return(ConstructorDeclaration(className) .AddModifiers(Token(SyntaxKind.PublicKeyword)) .WithBody(Block())); yield return(FieldDeclaration(VariableDeclaration(PredefinedType(Token(SyntaxKind.StringKeyword))) .AddVariables( VariableDeclarator(Identifier(UsernameFieldName), null, EqualsValueClause(SyntaxHelpers.StringLiteral(""))), VariableDeclarator(Identifier(PasswordFieldName), null, EqualsValueClause(SyntaxHelpers.StringLiteral(""))))) .AddModifiers(Token(SyntaxKind.PublicKeyword))); yield return(FieldDeclaration(VariableDeclaration(NullableType(PredefinedType(Token(SyntaxKind.StringKeyword)))) .AddVariables( VariableDeclarator(Identifier(CacheFieldName)))) .AddModifiers(Token(SyntaxKind.PublicKeyword))); yield return(PropertyDeclaration(PredefinedType(Token(SyntaxKind.StringKeyword)), UsernamePropertyName) .AddModifiers(Token(SyntaxKind.PublicKeyword)) .AddAccessorListAccessors( AccessorDeclaration(SyntaxKind.GetAccessorDeclaration) .WithExpressionBody(ArrowExpressionClause(IdentifierName(UsernameFieldName))), AccessorDeclaration(SyntaxKind.SetAccessorDeclaration, Block( ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(UsernameFieldName), MethodHelpers.ArgumentOrThrowIfNull("value"))), ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(CacheFieldName), LiteralExpression(SyntaxKind.NullLiteralExpression))))))); yield return(PropertyDeclaration(PredefinedType(Token(SyntaxKind.StringKeyword)), PasswordPropertyName) .AddModifiers(Token(SyntaxKind.PublicKeyword)) .AddAccessorListAccessors( AccessorDeclaration(SyntaxKind.GetAccessorDeclaration) .WithExpressionBody(ArrowExpressionClause(IdentifierName(PasswordFieldName))), AccessorDeclaration(SyntaxKind.SetAccessorDeclaration, Block( ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(PasswordFieldName), MethodHelpers.ArgumentOrThrowIfNull("value"))), ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(CacheFieldName), LiteralExpression(SyntaxKind.NullLiteralExpression))))))); }