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(");");
 }