public static string DefaultScalarFieldTypeMapping(GraphQlType baseType, GraphQlTypeBase valueType, string valueName) { valueName = NamingHelper.ToPascalCase(valueName); if (valueName == "From" || valueName == "ValidFrom" || valueName == "CreatedAt" || valueName == "To" || valueName == "ValidTo" || valueName == "ModifiedAt" || valueName.EndsWith("Timestamp")) { return("DateTimeOffset?"); } return(valueType.Name == GraphQlTypeBase.GraphQlTypeScalarString ? "string" : "object"); }
public static string DefaultScalarFieldTypeMapping(GraphQlType baseType, GraphQlTypeBase valueType, string valueName) { valueName = NamingHelper.ToPascalCase(valueName); if (valueName == "From" || valueName == "ValidFrom" || valueName == "To" || valueName == "ValidTo" || valueName == "CreatedAt" || valueName == "UpdatedAt" || valueName == "ModifiedAt" || valueName == "DeletedAt" || valueName.EndsWith("Timestamp")) { return("DateTimeOffset?"); } var dataType = valueType.Name == GraphQlTypeBase.GraphQlTypeScalarString ? "string" : "object"; return(GraphQlGenerator.AddQuestionMarkIfNullableReferencesEnabled(dataType)); }
private static string GetIdNetType(GraphQlType baseType, GraphQlTypeBase valueType, string valueName) { switch (GraphQlGeneratorConfiguration.IdType) { case IdType.String: return("string"); case IdType.Guid: return("Guid?"); case IdType.Object: return("object"); case IdType.Custom: return(GraphQlGeneratorConfiguration.CustomScalarFieldTypeMapping(baseType, valueType, valueName)); default: throw new InvalidOperationException($"'{GraphQlGeneratorConfiguration.IdType}' not supported"); } }
private static string GetCustomScalarType(GraphQlType baseType, GraphQlTypeBase valueType, string valueName) { if (GraphQlGeneratorConfiguration.CustomScalarFieldTypeMapping == null) { throw new InvalidOperationException($"'{nameof(GraphQlGeneratorConfiguration.CustomScalarFieldTypeMapping)}' missing"); } var netType = GraphQlGeneratorConfiguration.CustomScalarFieldTypeMapping(baseType, valueType, valueName); if (String.IsNullOrWhiteSpace(netType)) { throw new InvalidOperationException($".NET type for '{baseType.Name}.{valueName}' ({valueType.Name}) cannot be resolved. Please check {nameof(GraphQlGeneratorConfiguration)}.{nameof(GraphQlGeneratorConfiguration.CustomScalarFieldTypeMapping)} implementation. "); } return(netType); }
private static string ScalarToNetType(GraphQlType baseType, string valueName, GraphQlTypeBase valueType) { switch (valueType.Name) { case GraphQlTypeBase.GraphQlTypeScalarInteger: return(GetIntegerNetType()); case GraphQlTypeBase.GraphQlTypeScalarString: return(GetCustomScalarType(baseType, valueType, valueName)); case GraphQlTypeBase.GraphQlTypeScalarFloat: return(GetFloatNetType()); case GraphQlTypeBase.GraphQlTypeScalarBoolean: return("bool?"); case GraphQlTypeBase.GraphQlTypeScalarId: return(GetIdNetType(baseType, valueType, valueName)); default: return(GetCustomScalarType(baseType, valueType, valueName)); } }
private static string ScalarToNetType(GraphQlType baseType, string valueName, GraphQlTypeBase valueType) { switch (valueType.Name) { case GraphQlTypeBase.GraphQlTypeScalarInteger: return("int?"); case GraphQlTypeBase.GraphQlTypeScalarByte: return("byte?"); case GraphQlTypeBase.GraphQlTypeScalarString: return(GraphQlGeneratorConfiguration.CustomScalarFieldTypeMapping(baseType, valueType, valueName)); case GraphQlTypeBase.GraphQlTypeScalarFloat: return("decimal?"); case GraphQlTypeBase.GraphQlTypeScalarBoolean: return("bool?"); case GraphQlTypeBase.GraphQlTypeScalarId: return("Guid?"); case GraphQlTypeBase.GraphQlTypeScalarDateTime: return("DateTime?"); default: return(GraphQlGeneratorConfiguration.CustomScalarFieldTypeMapping(baseType, valueType, valueName)); } }
public ScalarFieldTypeDescription DefaultScalarFieldTypeMapping(GraphQlType baseType, GraphQlTypeBase valueType, string valueName) { valueName = NamingHelper.ToPascalCase(valueName); if (valueName == "From" || valueName == "ValidFrom" || valueName == "To" || valueName == "ValidTo" || valueName == "CreatedAt" || valueName == "UpdatedAt" || valueName == "ModifiedAt" || valueName == "DeletedAt" || valueName.EndsWith("Timestamp")) { return new ScalarFieldTypeDescription { NetTypeName = "DateTimeOffset?" } } ; valueType = (valueType as GraphQlFieldType)?.UnwrapIfNonNull() ?? valueType; if (valueType.Kind == GraphQlTypeKind.Enum) { return new ScalarFieldTypeDescription { NetTypeName = NamingHelper.ToPascalCase(valueType.Name) + "?" } } ; var dataType = valueType.Name == GraphQlTypeBase.GraphQlTypeScalarString ? "string" : "object"; return(new ScalarFieldTypeDescription { NetTypeName = GraphQlGenerator.AddQuestionMarkIfNullableReferencesEnabled(this, dataType) }); }
private static string GetBooleanNetType(GraphQlType baseType, GraphQlTypeBase valueType, string valueName) => GraphQlGeneratorConfiguration.BooleanTypeMapping switch {