public override StatementSyntax GetSyntax() { var paramArgList = new List <SyntaxNodeOrToken>(); paramArgList.Add(GetLiteralArg("path", Path)); paramArgList.Add(SyntaxFactory.Token(SyntaxKind.CommaToken)); if (PathParams.Any()) { paramArgList.Add(GetVariableArg("pathParams", "pathParams")); paramArgList.Add(SyntaxFactory.Token(SyntaxKind.CommaToken)); } if (QueryParams.Any()) { paramArgList.Add(GetVariableArg("queryParams", "queryParams")); paramArgList.Add(SyntaxFactory.Token(SyntaxKind.CommaToken)); } if (FileParams.Any()) { paramArgList.Add(GetVariableArg("fileParams", "fileParams")); paramArgList.Add(SyntaxFactory.Token(SyntaxKind.CommaToken)); } if (FormParams.Any()) { paramArgList.Add(GetVariableArg("formParams", "formParams")); paramArgList.Add(SyntaxFactory.Token(SyntaxKind.CommaToken)); } if (BodyParams.Any(b => b.External != true)) { paramArgList.Add(GetVariableArg("bodyParams", "bodyParams")); paramArgList.Add(SyntaxFactory.Token(SyntaxKind.CommaToken)); } if (BodyParams.Any(b => b.External == true && !b.Key.EndsWith("request"))) { paramArgList.Add(GetVariableArg("externalBodyParams", "externalBodyParams")); paramArgList.Add(SyntaxFactory.Token(SyntaxKind.CommaToken)); } if (HasRequest) { paramArgList.Add(GetVariableArg("request", "objectToUnpack")); paramArgList.Add(SyntaxFactory.Token(SyntaxKind.CommaToken)); } paramArgList.Add(GetMemberAccessArg("method", "HttpMethods", HttpMethod)); var statementBody = SyntaxFactory.AwaitExpression( SyntaxFactory.InvocationExpression( SyntaxFactory.MemberAccessExpression( SyntaxKind.SimpleMemberAccessExpression, SyntaxFactory.IdentifierName("Client"), SyntaxFactory.GenericName( SyntaxFactory.Identifier("CallApi")) .WithTypeArgumentList( SyntaxFactory.TypeArgumentList( SyntaxFactory.SingletonSeparatedList <TypeSyntax>( SyntaxFactory.IdentifierName(Returns)))))) .WithArgumentList( SyntaxFactory.ArgumentList( SyntaxFactory.SeparatedList <ArgumentSyntax>( paramArgList.ToArray() )))); if (IsVoidTask) { return(SyntaxFactory.ExpressionStatement(statementBody)); } return(SyntaxFactory.ReturnStatement(statementBody)); }
protected List <StatementSyntax> GetMethodBodyParams(bool ignoreQuery = false) { var methodBody = new List <StatementSyntax>(); if (PathParams.Any()) { var pathDeclaration = new DictionaryParamaterLocalDeclarationSyntax { Name = "pathParams", MyParams = PathParams, }.GetSyntax(); methodBody.Add(pathDeclaration); } if (QueryParams.Any() && !ignoreQuery) { var queryParamDeclaration = new DictionaryParamaterLocalDeclarationSyntax { Name = "queryParams", MyParams = QueryParams, }.GetSyntax(); methodBody.Add(queryParamDeclaration); } if (FileParams.Any()) { var fileParamDeclaration = new DictionaryParamaterLocalDeclarationSyntax { Name = "fileParams", MyParams = FileParams, VarType = "Stream", }.GetSyntax(); methodBody.Add(fileParamDeclaration); } if (FormParams.Any()) { var formParamDeclaration = new DictionaryParamaterLocalDeclarationSyntax { Name = "formParams", MyParams = FormParams, }.GetSyntax(); methodBody.Add(formParamDeclaration); } if (BodyParams.Any(b => b.External != true)) { var bodyParamDeclaration = new BodyParameterContainer { Name = "bodyParams", BodyType = UseAnnonBody ? "Annonymous" : Returns, BodyParams = BodyParams.Where(b => b.External != true && !b.Key.EndsWith("request")).ToList(), }.GetSyntax(); methodBody.Add(bodyParamDeclaration); } // add external body params if (BodyParams.Any(b => b.External == true && !b.Key.EndsWith("request"))) { var bodyParamDeclaration = new BodyParameterContainer { Name = "externalBodyParams", BodyType = "Annonymous", BodyParams = BodyParams.Where(b => b.External == true && !b.Key.EndsWith("request")).ToList(), }.GetSyntax(); methodBody.Add(bodyParamDeclaration); } return(methodBody); }