ParameterSyntax[] TransformParameters(Method method) { var list = new List <ParameterSyntax>(); if (method.Params.Count > 0) { var arg0 = method.Params[0]; if (arg0.Name == null) { list.Add(Parameter(_names.AnonymousParameter.Identifier) .WithType(_names.MakeTypeSyntax(arg0.Type, method.DeclaringInterface, TypeUsage.DomainClass, Nullability.NullableRef))); } else { foreach (var arg in method.Params) { list.Add(Parameter(Identifier(_names.GetCodeIdentifierLowerCamel(arg))) .WithType(_names.MakeTypeSyntax(arg.Type, method.DeclaringInterface, TypeUsage.DomainClass, Nullability.NullableRef))); } } } list.Add(Parameter(_names.CancellationTokenParameter.Identifier) .WithType(IdentifierName(nameof(CancellationToken))) .WithDefault(EqualsValueClause(LiteralExpression( SyntaxKind.DefaultLiteralExpression, Token(SyntaxKind.DefaultKeyword))))); return(list.ToArray()); }