/// <summary> /// 框架xml转换成前台显示的treeStep /// </summary> /// <param name="cf"></param> /// <returns></returns> public static treeViewModel getControlJson4Tree(this caseFramework cf) { XElement xe = XElement.Parse(cf.controlXML); var root = new frameTreeNode(); root.text = cf.workName; root.state = "open"; root.FID = cf.ID; root.children = new List <treeViewModel>(); var sms = xe.Descendants("Step"); foreach (var e in sms) { scriptStepTreeModel tv = new scriptStepTreeModel(); tv.FID = cf.ID; //tv.PID = null; tv.state = "open"; tv.name = e.Attribute("name").Value;//name肯定有把.... tv.iconCls = "icon-view_outline_detail"; if (e.Attribute("desc") != null) { tv.desc = e.Attribute("desc").Value; } root.children.Add(tv); } return(root); }
private static string getUserControl(List <M_testCaseSteps> myControls, List <caseFramework> frames, List <project> pjs) { List <frameTreeNode> frameNodes = new List <frameTreeNode>(); foreach (var f in frames) { frameTreeNode tmp = new frameTreeNode(); tmp.FID = f.ID; tmp.text = f.workName; frameNodes.Add(tmp); } //项目节点 foreach (var r in frameNodes) { foreach (var p in pjs) { projectTreeNode tmpP = new projectTreeNode(); tmpP.PID = p.ID; tmpP.text = p.Pname; //control 分组 var tmpControls = from t in myControls where t.PID == p.ID && t.FID == r.FID select t; if (tmpControls.Count() > 0)//没有control { r.children.Add(tmpP); } foreach (var c in tmpControls) { controlNode cn = new controlNode(); cn.id = c.ID; //cn.text = c.name; cn.name = "userstep_" + c.ID; cn.desc = c.name; cn.FID = c.FID.Value; cn.PID = c.PID.Value; tmpP.children.Add(cn); } } //没有分组的control var noControls = from t in myControls where t.PID == null && t.FID == r.FID select t; foreach (var c in noControls) { controlNode cn = new controlNode(); cn.id = c.ID; cn.name = "userstep_" + c.ID; cn.desc = c.name; cn.FID = c.FID; cn.PID = c.PID; r.children.Add(cn); } } var jSetting = new JsonSerializerSettings(); jSetting.NullValueHandling = NullValueHandling.Ignore; string json = JsonConvert.SerializeObject(frameNodes, jSetting); return(json); }