示例#1
0
    /// <summary>
    /// loads all class definition
    /// </summary>
    /// <param name="json">json string</param>
    /// <returns>true on success, false on failure</returns>
    bool loadAllClassDefinition(string json)
    {
        JArray classDefinesJson = JsonConvert.DeserializeObject(json) as JArray;

        for (int i = 0; i < classDefinesJson.Count; i++)
        {
            JObject           classDefineJson = classDefinesJson[i] as JObject;
            int               classId         = int.Parse((string)classDefineJson["id"]);
            string            className       = ((string)classDefineJson["name"]);
            JArray            classFields     = classDefineJson["data"] as JArray;
            FBClassDefinition classDefine     = new FBClassDefinition(classId, className);
            for (int j = 0; j < classFields.Count; j++)
            {
                JObject      classFieldJson = classFields[j] as JObject;
                string       fieldName      = ((string)classFieldJson["fieldName"]);
                FBDataType   fieldType      = (FBDataType)((int)classFieldJson["dataType"]);
                FBClassField classField     = new FBClassField(fieldName, fieldType);
                classDefine.setField(classField);
            }
            FBClassData classData = new FBClassData(classDefine);
            addClassData(classData);
        }
        return(true);
    }
示例#2
0
    /// <summary>
    /// load all objects of a class
    /// </summary>
    /// <param name="json">json string</param>
    /// <returns>true on success, false on failure</returns>
    bool loadClassObjects(string json)
    {
        JObject           classDataJson    = JsonConvert.DeserializeObject(json) as JObject;
        FBClassData       classData        = getClassData((string)classDataJson["name"]);
        FBClassDefinition classDef         = classData.classDef;
        JArray            classObjectsJson = classDataJson["data"] as JArray;

        for (int i = 0; i < classObjectsJson.Count; i++)
        {
            JObject       classObjectJson = classObjectsJson[i] as JObject;
            int           id          = int.Parse((string)classObjectJson["id"]);
            FBClassObject classObject = new FBClassObject();
            classObject.id      = id;
            classObject.classId = classDef.id;
            foreach (KeyValuePair <string, FBClassField> p in classDef.fieldsByName)
            {
                FBValue val = new FBValue(p.Value.dataType, (string)classObjectJson[p.Value.name]);
                classObject.setFieldValue(p.Value.name, val);
            }
            classData.addObject(classObject);
        }
        classData.modified = false;
        return(true);
    }
示例#3
0
 /// <summary>
 /// ctor
 /// </summary>
 public FBClassData(FBClassDefinition classDef)
 {
     this.classDef = classDef;
 }