/// <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);
        }
示例#2
0
        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);
        }