public Type GetActualType(MongoDB.Bson.IO.BsonReader bsonReader, Type nominalType)
    {
        if (nominalType != typeof(MyAbstractClass))
        {
            throw new Exception("Cannot use FooDiscriminator for type " + nominalType);
        }
        var ret      = nominalType;
        var bookmark = bsonReader.GetBookmark();

        bsonReader.ReadStartDocument();
        if (bsonReader.FindElement(ElementName))
        {
            var value = bsonReader.ReadString();
            ret = Type.GetType(value);
            if (ret == null)
            {
                throw new Exception("Could not find type " + value);
            }
            if (!ret.IsSubclassOf(typeof(MyAbstractClass)))
            {
                throw new Exception("Database type does not inherit from MyAbstractClass.");
            }
        }
        bsonReader.ReturnToBookmark(bookmark);
        return(ret);
    }
        static int _g_get_State(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

                MongoDB.Bson.IO.BsonReader gen_to_be_invoked = (MongoDB.Bson.IO.BsonReader)translator.FastGetCSObj(L, 1);
                translator.PushMongoDBBsonIOBsonReaderState(L, gen_to_be_invoked.State);
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
            return(1);
        }
 public override object Deserialize(MongoDB.Bson.IO.BsonReader bsonReader, Type nominalType, Type actualType, IBsonSerializationOptions options)
 {
     if (bsonReader.GetCurrentBsonType() == BsonType.Null)
     {
         bsonReader.ReadNull();
         return(null);
     }
     else
     {
         var value = bsonReader.ReadString();
         var doc   = BsonDocument.Parse(value);
         var query = new QueryDocument(doc);
         return(query);
     }
 }
        static int _m_SkipValue(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


                MongoDB.Bson.IO.BsonReader gen_to_be_invoked = (MongoDB.Bson.IO.BsonReader)translator.FastGetCSObj(L, 1);



                {
                    gen_to_be_invoked.SkipValue(  );



                    return(0);
                }
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
        }
        static int _m_ReadTimestamp(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


                MongoDB.Bson.IO.BsonReader gen_to_be_invoked = (MongoDB.Bson.IO.BsonReader)translator.FastGetCSObj(L, 1);



                {
                    long gen_ret = gen_to_be_invoked.ReadTimestamp(  );
                    LuaAPI.lua_pushint64(L, gen_ret);



                    return(1);
                }
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
        }
        static int _m_ReadRegularExpression(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


                MongoDB.Bson.IO.BsonReader gen_to_be_invoked = (MongoDB.Bson.IO.BsonReader)translator.FastGetCSObj(L, 1);



                {
                    MongoDB.Bson.BsonRegularExpression gen_ret = gen_to_be_invoked.ReadRegularExpression(  );
                    translator.Push(L, gen_ret);



                    return(1);
                }
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
        }
        static int _m_ReturnToBookmark(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


                MongoDB.Bson.IO.BsonReader gen_to_be_invoked = (MongoDB.Bson.IO.BsonReader)translator.FastGetCSObj(L, 1);



                {
                    MongoDB.Bson.IO.BsonReaderBookmark _bookmark = (MongoDB.Bson.IO.BsonReaderBookmark)translator.GetObject(L, 2, typeof(MongoDB.Bson.IO.BsonReaderBookmark));

                    gen_to_be_invoked.ReturnToBookmark(_bookmark);



                    return(0);
                }
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }
        }
示例#8
0
        public ActionResult SaveCommenInfoTest(MutualData main, List <MutualData> subList)
        {
            JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();


            string abc = jsonSerializer.Serialize(HttpContext.Request.Form);

            string dddd = "{ \"name\" : \"123\", \"hijs\" : [{ \"id\" : 0, \"type\" : 1 }, { \"id\" : 1, \"type\" : 2 }, { \"id\" : 2, \"type\" : 3 }, { \"id\" : 3, \"type\" : 4 }] } ";

            string ccc = "{ 'name' : '123', 'hijs' : [{ 'id' : 0, 'type' : 1 }, { 'id' : 1, 'type' : 2 }, { 'id' : 2, 'type' : 3 }, { 'id' : 3, 'type' : 4 }] } ";

            MongoDB.Bson.IO.BsonReader bsonReader = MongoDB.Bson.IO.BsonReader.Create(ccc);

            BsonDocument tempBson = BsonDocument.ReadFrom(bsonReader);

            MongoOperation monOp = new MongoOperation();

            monOp.Save("TestRelation", tempBson);



            return(View());
        }
        static int _m_ReadName(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);


                MongoDB.Bson.IO.BsonReader gen_to_be_invoked = (MongoDB.Bson.IO.BsonReader)translator.FastGetCSObj(L, 1);


                int gen_param_count = LuaAPI.lua_gettop(L);

                if (gen_param_count == 1)
                {
                    string gen_ret = gen_to_be_invoked.ReadName(  );
                    LuaAPI.lua_pushstring(L, gen_ret);



                    return(1);
                }
                if (gen_param_count == 2 && translator.Assignable <MongoDB.Bson.IO.INameDecoder>(L, 2))
                {
                    MongoDB.Bson.IO.INameDecoder _nameDecoder = (MongoDB.Bson.IO.INameDecoder)translator.GetObject(L, 2, typeof(MongoDB.Bson.IO.INameDecoder));

                    string gen_ret = gen_to_be_invoked.ReadName(_nameDecoder);
                    LuaAPI.lua_pushstring(L, gen_ret);



                    return(1);
                }
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }

            return(LuaAPI.luaL_error(L, "invalid arguments to MongoDB.Bson.IO.BsonReader.ReadName!"));
        }
        public object Deserialize(MongoDB.Bson.IO.BsonReader bsonReader, Type nominalType, IBsonSerializationOptions options)
        {
            if (nominalType != typeof(FieldsWrapper))
            {
                throw new ArgumentException("Cannot deserialize anything but self");
            }
            var doc  = BsonDocument.ReadFrom(bsonReader);
            var list = new List <DataFieldValue>();

            foreach (var name in doc.Names)
            {
                var val = doc[name];
                if (val.IsString)
                {
                    list.Add(new DataFieldValue {
                        LocalIdentifier = name, Values = new List <string> {
                            val.AsString
                        }
                    });
                }
                else if (val.IsBsonArray)
                {
                    DataFieldValue df = new DataFieldValue {
                        LocalIdentifier = name
                    };
                    foreach (var elem in val.AsBsonArray)
                    {
                        df.Values.Add(elem.AsString);
                    }
                    list.Add(df);
                }
            }
            return(new FieldsWrapper {
                DataFieldValues = list
            });
        }
示例#11
0
 object IBsonSerializer.Deserialize(MongoDB.Bson.IO.BsonReader bsonReader, Type nominalType, IBsonSerializationOptions options)
 {
     return(_classMapSerializer.Deserialize(bsonReader, nominalType, options));
 }
示例#12
0
 //  MongoDB returns datetime as DateTimeKind.Utc, which cann't be used in our timezone conversion logic
 //  We overwrite it to be DateTimeKind.Unspecified
 public override object Deserialize(MongoDB.Bson.IO.BsonReader bsonReader, System.Type nominalType, MongoDB.Bson.Serialization.IBsonSerializationOptions options)
 {
     var obj = base.Deserialize(bsonReader, nominalType, options);
     var dt = (DateTime) obj;
     return new DateTime(dt.Ticks, DateTimeKind.Unspecified);
 }