Example #1
0
        protected override BlockSyntax GenerateApplyAsyncBody() => Block(
            MethodHelpers.ThrowIfArgumentNull(MessageParameterName),

            MethodHelpers.IfNull(IdentifierName(CacheFieldName), Block(
                                     ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression,
                                                                              IdentifierName(CacheFieldName),
                                                                              WellKnownTypes.System.Convert.ToBase64String(WellKnownTypes.System.Text.Encoding.GetBytes(
                                                                                                                               WellKnownTypes.System.Text.Encoding.UTF8,
                                                                                                                               BinaryExpression(SyntaxKind.AddExpression,
                                                                                                                                                BinaryExpression(SyntaxKind.AddExpression,
                                                                                                                                                                 IdentifierName(UsernamePropertyName),
                                                                                                                                                                 SyntaxHelpers.StringLiteral(":")),
                                                                                                                                                IdentifierName(PasswordPropertyName))
                                                                                                                               ))))
                                     )),

            ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression,
                                                     MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
                                                                            MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression,
                                                                                                   IdentifierName(MessageParameterName),
                                                                                                   IdentifierName("Headers")),
                                                                            IdentifierName("Authorization")),
                                                     ObjectCreationExpression(WellKnownTypes.System.Net.Http.Headers.AuthenticationHeaderValue.Name)
                                                     .AddArgumentListArguments(
                                                         Argument(SyntaxHelpers.StringLiteral("Basic")),
                                                         Argument(IdentifierName(CacheFieldName))))),

            ReturnStatement(LiteralExpression(SyntaxKind.DefaultLiteralExpression)));