public MethodParametersBuilder WithParametersForApiDtoFields()

in src/JetBrains.Space.Generator/CodeGeneration/CSharp/MethodParametersBuilder.cs [38:74]


    public MethodParametersBuilder WithParametersForApiDtoFields(IEnumerable<ApiDtoField> apiDtoFields) 
        => WithParametersForApiFields(apiDtoFields.Select(it => it.Field));

    public MethodParametersBuilder WithParametersForApiFields(IEnumerable<ApiField> apiFields)
    {
        var methodParametersBuilder = this;
        var orderedFields = apiFields.OrderBy(it => !it.Type.Nullable ? 0 : 1).ToList();
        foreach (var field in orderedFields)
        {
            var parameterType = field.Type.ToCSharpType(_context);
            if (field.Type.Nullable)
            {
                parameterType += "?";
            }

            if (!field.Type.Nullable)
            {
                if (field.RequiresAddedNullability())
                {
                    parameterType += "?";
                }
                    
                if (field.DefaultValue is ApiDefaultValue.Collection or ApiDefaultValue.Map)
                {
                    parameterType += "?";
                }
            }
                
            var parameterName = field.ToCSharpVariableName();
            var parameterDefaultValue = field.ToCSharpDefaultValueForParameterList(_context);

            methodParametersBuilder = methodParametersBuilder
                .WithParameter(parameterType, parameterName, parameterDefaultValue);
        }

        return methodParametersBuilder;
    }