/// <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); }
/// <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); }
/// <summary> /// ctor /// </summary> public FBClassData(FBClassDefinition classDef) { this.classDef = classDef; }