Ejemplo n.º 1
0
        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");
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 7
0
        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)
            });
        }
Ejemplo n.º 8
0
 private static string GetBooleanNetType(GraphQlType baseType, GraphQlTypeBase valueType, string valueName) =>
 GraphQlGeneratorConfiguration.BooleanTypeMapping switch
 {