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