//public static Type StringToType(string typeString) //{ // switch (typeString) // { // case "string": // return typeof(string); // case "integer": // return typeof(int); // case "boolean": // return typeof(bool); // case "float": // return typeof(double); // case "datetime": // case "date": // case "time": // return typeof(DateTime); // case "blob": // return typeof(byte[]); // } // throw new ChinoApiException("error, invalid type: " + typeString + "."); //} //public static String TypeToString(Type t) //{ // if (t == typeof(String) || t == typeof(string)) // { // return "string"; // } // else if (t == typeof(int) || t == typeof(Int32) || t == typeof(Int16) || t == typeof(Int64)) // { // return "integer"; // } // else if (t == typeof(bool) || t == typeof(Boolean)) // { // return "boolean"; // } // else if (t == typeof(float) || t == typeof(double) || t == typeof(Double)) // { // return "float"; // } // else if (t == typeof(DateTime)) // { // return "datetime"; // } // else if (t == typeof(TimeSpan)) // { // return "datetime"; // } // else if (t == typeof(FileStream)) // { // return "blob"; // } // else // { // throw new ChinoApiException("error, invalid type: " + t + "."); // } //} /// <summary> /// The FieldTypeToCLRType /// </summary> /// <param name="type">The <see cref="SchemaFieldType"/></param> /// <returns>The <see cref="Type"/></returns> public static Type FieldTypeToCLRType(SchemaFieldType type) { switch (type) { case SchemaFieldType.integer: return(typeof(int)); case SchemaFieldType.@float: return(typeof(float)); case SchemaFieldType.text: case SchemaFieldType.@string: case SchemaFieldType.base64: case SchemaFieldType.json: return(typeof(string)); case SchemaFieldType.boolean: return(typeof(bool)); case SchemaFieldType.date: case SchemaFieldType.time: case SchemaFieldType.datetime: return(typeof(DateTime)); case SchemaFieldType.blob: return(typeof(byte[])); default: throw new ChinoApiException(string.Format("Not recognized Chino-Type: \"{0}\"", type)); } }
public SchemaField(ISchemaQueryType <Info> declaringType, GraphQLField field, Schema schema) { DeclaringType = declaringType; _field = field; _schema = schema; if (_field.Type.IsScalar) { var varType = _schema.GraphQLSchema.VariableTypes.VariableTypeOf(_field.Type.CLRType); FieldType = SchemaFieldType <Info> .NewValueField(varType); } else { FieldType = SchemaFieldType <Info> .NewQueryField(_schema.OfType(_field.Type));; } Arguments = _field.Arguments.ToDictionary(a => a.ArgumentName); }
public SchemaField(ISchemaQueryType <Info> declaringType, GraphQLField field, Schema schema) { DeclaringType = declaringType; _field = field; _schema = schema; if (_field.Type.TypeKind == TypeKind.SCALAR) { var varType = _schema.GraphQLSchema.VariableTypes.VariableTypeOf(_field.Type.CLRType); if (varType?.Type == null) { throw new Exception("Field has unknown return type. " + declaringType.TypeName + "." + _field.Name); } FieldType = SchemaFieldType <Info> .NewValueField(varType); } else { FieldType = SchemaFieldType <Info> .NewQueryField(_schema.OfType(_field.Type));; } Arguments = _field.Arguments.ToDictionary(a => a.ArgumentName); }
/// <summary> /// Inits list type or simple type field info. /// </summary> /// <param name="fieldName"></param> /// <param name="dataType"></param> /// <param name="fieldType"></param> public FieldInfo(string fieldName, Type dataType, SchemaFieldType fieldType) { FieldName = fieldName ?? throw new ArgumentNullException(nameof(fieldName)); DataType = dataType ?? throw new ArgumentNullException(nameof(dataType)); FieldType = fieldType; }
/// <summary> /// /// </summary> /// <param name="name"></param> /// <param name="fieldType"></param> /// <param name="alias"></param> public SchemaStructField(string name, SchemaFieldType fieldType, string alias = "") { this.FieldName = name; this.FieldType = fieldType; this.AliasName = alias; }