Beispiel #1
0
        //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));
            }
        }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 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);
 }
Beispiel #4
0
 /// <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;
 }
Beispiel #5
0
 /// <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;
 }