public static void setPropertyValueAsStringIfNotEmpty(KuModel target, JObject source, String sourcePropertyName) { if (isPropertyExist(source, sourcePropertyName)) { string v = getPropertyValueAsString(source, sourcePropertyName); PropertyInfo property = target.GetType().GetProperty(sourcePropertyName); Type t = property.PropertyType; if (t.Name == "Boolean") { property.SetValue(target, Convert.ToBoolean(v), null); } else if (t.Name == "Double") { property.SetValue(target, Convert.ToDouble(v), null); } else if (t.Name.StartsWith("Int")) { property.SetValue(target, Convert.ToInt32(v), null); } else { property.SetValue(target, v, null); } } }
private void readModels(JArray modelsJarray, int type, Position parentAbsPostion) { foreach (JObject jsonObject in modelsJarray) { KuModel kModel = new KuModel(); kModel.modelTypeId = int.Parse(jsonObject["modelTypeId"].ToString()); kModel.orderType = type; setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "modelName"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "customCode"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "modelNumber"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "obsBrandGoodId"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "modelAvailable"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "needQuotation"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "displayInCostList"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "textureName"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "textureBrandGoodCode"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "textureAvailable"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "obsTextureAccountId"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "id"); setPropertyValueAsStringIfNotEmpty(kModel, jsonObject, "parentId"); List <Parameter> paramList = new List <Parameter>(); Dimension dim = new Dimension(); JArray paramJarray = new JArray(); JArray ignoreParamJarrray = new JArray(); if (isPropertyExist(jsonObject, "parameters")) { paramJarray = getPropertyValueAsJarray(jsonObject, "parameters"); } if (isPropertyExist(jsonObject, "ignoreParameters")) { ignoreParamJarrray = getPropertyValueAsJarray(jsonObject, "ignoreParameters"); } foreach (JObject paramJobj in paramJarray) { if (!isPropertyExist(paramJobj, "name")) { continue; } Parameter pr = new Parameter(); pr.name = getPropertyValueAsString(paramJobj, "name"); pr.value = getPropertyValueAsString(paramJobj, "value"); if (pr.name != "") { paramList.Add(pr); } setDimensionValue(dim, pr); } foreach (JObject ignoreParamJobj in ignoreParamJarrray) { if (!isPropertyExist(ignoreParamJobj, "name")) { continue; } Parameter pr = new Parameter(); pr.name = getPropertyValueAsString(ignoreParamJobj, "name"); pr.value = getPropertyValueAsString(ignoreParamJobj, "value"); if (pr.name != "") { paramList.Add(pr); } setDimensionValue(dim, pr); } double RZ_Degree; kModel.parameters = paramList; kModel.parameters.Add(new Parameter("color", kModel.textureBrandGoodCode + "H")); kModel.ImosPosition = getPosition(getPropertyValueAsJobj(jsonObject, "absPosition")); kModel.absRotation = getRotation(getPropertyValueAsJobj(jsonObject, "absRotation"), out RZ_Degree); kModel.absPosition = getbeforRoatePostion(kModel.ImosPosition, RZ_Degree); kModel.caulModel = Caul.newCaul(kModel.absPosition, dim.d, dim.w, dim.h); kModel.boxPostion = kModel.absPosition; if (kModel.customCode == "F") { boxseq += 1; kModel.boxPostion = kModel.absPosition; kModel.holeGroup = boxseq.ToString(); } else { if (parentAbsPostion == null) { kModel.boxPostion = kModel.absPosition; } else { kModel.boxPostion = parentAbsPostion; } kModel.holeGroup = boxseq.ToString(); } if (kModel.modelNumber != null && kModel.modelNumber != "0") { kobj.Add(kModel); } if (isPropertyExist(jsonObject, "subModels")) { readModels(getPropertyValueAsJarray(jsonObject, "subModels"), type, kModel.absPosition); } } }