//---------------------------------------------------------------------
        public Prop <T> defProp <T>(Dictionary <string, string> map_param, string key, T default_value, bool collect_dirty = true)
        {
            PropDef prop_def = new PropDef(key, typeof(T), collect_dirty);

            mMapPropDef[prop_def.getKey()] = prop_def;
            Prop <T> prop = new Prop <T>(this, prop_def, default_value);

            mMapProp[prop_def.getKey()] = prop;

            if (map_param == null)
            {
                return(prop);
            }

            string json = null;

            if (map_param.TryGetValue(prop_def.getKey(), out json))
            {
                if (!string.IsNullOrEmpty(json))
                {
                    prop.set(EbTool.jsonDeserialize <T>(json));
                }
            }

            return(prop);
        }
示例#2
0
        //---------------------------------------------------------------------
        void _loadTable(string table_name)
        {
            string str_query_select = string.Format("SELECT * FROM {0};", table_name);
            Dictionary <int, List <DataInfo> > map_data = Sqlite.getTableData(str_query_select);

            if (map_data.Count <= 0)
            {
                return;
            }

            EbTable table = new EbTable();

            table.Name = table_name;

            foreach (var i in map_data)
            {
                EbPropSet       prop_set       = new EbPropSet();
                int             data_id        = i.Key;
                List <DataInfo> list_data_info = i.Value;
                foreach (var data_info in list_data_info)
                {
                    object data_value = data_info.data_value;
                    string data_name  = data_info.data_name;

                    switch (data_info.data_type)
                    {
                    case 1:
                    {
                        PropDef prop_def = table.getPropDef(data_name);
                        if (prop_def == null)
                        {
                            PropDef d = new PropDef(data_name, typeof(int), false);
                            table._addPropDef(d);
                        }
                        Prop <int> prop = new Prop <int>(null, prop_def, 0);
                        prop.set((int)data_value);
                        prop_set._addProp(data_name, prop);
                    }
                    break;

                    case 2:
                    {
                        PropDef prop_def = table.getPropDef(data_name);
                        if (prop_def == null)
                        {
                            PropDef d = new PropDef(data_name, typeof(float), false);
                            table._addPropDef(d);
                        }
                        Prop <float> prop = new Prop <float>(null, prop_def, 0f);
                        prop.set(((float)(double)data_value));
                        prop_set._addProp(data_name, prop);
                    }
                    break;

                    case 3:
                    {
                        PropDef prop_def = table.getPropDef(data_name);
                        if (prop_def == null)
                        {
                            PropDef d = new PropDef(data_name, typeof(string), false);
                            table._addPropDef(d);
                        }
                        Prop <string> prop = new Prop <string>(null, prop_def, "");
                        prop.set((string)data_value);
                        prop_set._addProp(data_name, prop);
                    }
                    break;
                    }
                }

                IProp prop_id = prop_set.getProp("Id");
                if (prop_id == null)
                {
                    EbLog.Error("EbDataMgr._loadTable() Error! Key=Id not exist, TableName=" + table_name);
                    continue;
                }
                Prop <int> p = (Prop <int>)prop_id;
                prop_set.Id = data_id;
                table._addPropSet(prop_set);
            }

            Db._addTable(table);
        }