Arbel.Roslyn.ConfigureAwaitChecker.ConfigureAwaitVisualBasicCodeFix.AddConfigureAwait C# (CSharp) Метод

AddConfigureAwait() приватный Метод

private AddConfigureAwait ( Microsoft.CodeAnalysis.Document document, AwaitExpressionSyntax awaitSyntax, bool value, CancellationToken cancellationToken ) : Task
document Microsoft.CodeAnalysis.Document
awaitSyntax AwaitExpressionSyntax
value bool
cancellationToken System.Threading.CancellationToken
Результат Task
        private async Task<Document> AddConfigureAwait(Document document, AwaitExpressionSyntax awaitSyntax, bool value, CancellationToken cancellationToken)
        {
            var oldExpression = awaitSyntax.Expression;
            var newExpression =
                SyntaxFactory.InvocationExpression(
                    SyntaxFactory.MemberAccessExpression(
                        SyntaxKind.SimpleMemberAccessExpression, oldExpression.WithoutTrailingTrivia(), SyntaxFactory.Token(SyntaxKind.DotToken),
                        SyntaxFactory.IdentifierName("ConfigureAwait")),
                    SyntaxFactory.ArgumentList(
                        SyntaxFactory.SingletonSeparatedList<ArgumentSyntax>(
                            SyntaxFactory.SimpleArgument(
                                value 
                                ? SyntaxFactory.LiteralExpression(
                                    SyntaxKind.TrueLiteralExpression, SyntaxFactory.Token(SyntaxKind.TrueKeyword))
                                : SyntaxFactory.LiteralExpression(
                                    SyntaxKind.FalseLiteralExpression, SyntaxFactory.Token(SyntaxKind.FalseKeyword))))));

            return await document.ReplaceAsync(oldExpression, newExpression, cancellationToken).ConfigureAwait(false);
        }
    }