private static void BuildParameters(StringBuilder builder, ClientCall clientCall, CSharpOperationModel operation, bool cancellationToken, bool call) { bool comma = false; // Build the parameters foreach (CSharpParameterModel parameter in operation.Parameters) { if (parameter.VariableName != clientCall.VariableName) { if (comma) { builder.Append(", "); } if (!call) { builder.Append($"{parameter.Type} "); } builder.Append(parameter.VariableName); comma = true; } else if (call) { if (comma) { builder.Append(", "); } builder.Append(clientCall.ModelProperty); comma = true; } } // Add the cancellation token if (cancellationToken) { if (comma) { builder.Append(", "); } if (!call) { builder.Append("System.Threading.CancellationToken "); } builder.Append("cancellationToken"); } }
private static void BuildMethod(StringBuilder builder, ClientCall clientCall, CSharpOperationModel operation, bool cancellationToken) { builder.Append($"public {operation.ResultType} {operation.ActualOperationName}Async("); BuildParameters(builder, clientCall, operation, cancellationToken, false); builder.Append($") => Client.{operation.ActualOperationName}Async("); BuildParameters(builder, clientCall, operation, cancellationToken, true); builder.AppendLine(");"); }