Example #1
0
 public virtual void FromJson(string content)
 {
     Clear();
     PMT.RE.ListTmp tmp = new PMT.RE.ListTmp(content);
     for (int i = 0; i < tmp.Count; i++)
     {
         PMT.RE.IEntity entity = Activator.CreateInstance(typeof(T)) as PMT.RE.IEntity;
         if (entity != null)
         {
             entity.FromJson(tmp[i]);
             Add((T)entity);
         }
     }
 }
Example #2
0
        public void FromAttr(BaseField attr)
        {
            fieldtype      = attr.fieldtype;
            isMulti        = attr.multi;
            isMultilingual = attr.multilingual;

            sort = attr.sort;


            PMT.RE.IEntity entity = (attr as PMT.RE.IEntity);
            if (entity != null)
            {
                attribute = entity.ToString();
            }
        }
Example #3
0
        public void writeField(Unit unit, Object obj)
        {
            FieldInfo[] fields = obj.GetType().GetFields();

            foreach (FieldInfo field in fields)
            {
                BaseField field_attr = field.GetCustomAttribute <BaseField>();
                if (field_attr != null)
                {
                    Object value = field.GetValue(obj);
                    if (value == null)
                    {
                        value = Activator.CreateInstance(field.FieldType);
                        field.SetValue(obj, value);
                    }

                    Unit uProp = CML.ComUtility.QueryFirst <Unit>(
                        from x in db
                        where x.parent == unit.key
                        where x.name == field.Name
                        select x, null);

                    if (field_attr.type == UnitType.Field)
                    {
                        if (uProp != null)
                        {
                            PMT.RE.IEntity entity = value as PMT.RE.IEntity;
                            if (entity != null)
                            {
                                entity.FromJson(uProp.content);
                            }
                        }
                    }
                    else if (field_attr.type == UnitType.Container)
                    {
                        if (uProp != null)
                        {
                            writeChildren(uProp, value);

                            writeField(uProp, value);
                        }
                    }
                }
            }
        }