private static string GenerateParameterTypeConversion()

in src/JetBrains.Space.Generator/CodeGeneration/CSharp/QueryStringParameterConversionGenerator.cs [112:167]


    private static string GenerateParameterTypeConversion(ApiFieldType apiFieldType)
    {
        switch (apiFieldType)
        {
            case ApiFieldType.Primitive primitiveType:
            {
                var csharpType = primitiveType.ToCSharpPrimitiveType();
                
                // String
                if (csharpType == CSharpType.String)
                {
                    return string.Empty;
                }
                
                // Duration
                if (csharpType == CSharpType.SpaceDuration)
                {
                    return !apiFieldType.Nullable
                        ? ".ToIsoString()"
                        : "?.ToIsoString()";
                }
                
                // Other primitives
                var formatString = "";
                if (csharpType.FormatString != null)
                {
                    formatString = $"\"{csharpType.FormatString}\"";

                    if (csharpType == CSharpType.SpaceDate || csharpType == CSharpType.SpaceTime)
                    {
                        formatString += ", CultureInfo.InvariantCulture";
                    }
                }

                return !apiFieldType.Nullable
                    ? $".ToString({formatString})"
                    : $"?.ToString({formatString})";
            }
                
            case ApiFieldType.UrlParam:
                return !apiFieldType.Nullable
                    ? ".ToString()"
                    : "?.ToString()";
                
            case ApiFieldType.Enum:
                return ".ToEnumString()";
                
            case ApiFieldType.Ref:
                return !apiFieldType.Nullable
                    ? ".Id"
                    : "?.Id";
                
            default:
                throw new ResourceException("Could not generate query string parameter type conversion for field type: " + apiFieldType.ClassName);
        }
    }