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"))))));
 }
Example #2
0
        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)))))));
        }