Exemple #1
0
    private static void CopyNode(XmlNode srcNode, XmlNode tgtNode)
    {
        string DefaultWebServer = MyConfig.GetWebConfig("webipaddr", "localhost");

        foreach (XmlNode subNode in srcNode.ChildNodes)
        {
            if (subNode.Name != "siteMapNode")
            {
                continue;                                //只处理siteMapNode结点
            }
            XmlNode newNode = MyXml.AddXmlNode(tgtNode, subNode.Name);
            foreach (XmlAttribute attr in subNode.Attributes)
            {
                switch (attr.Name.ToLower())
                {
                case "url":
                case "title":
                case "right":
                case "icon":
                case "style":     //菜单样式 1,2,3
                    //以上结点可以被传向客户端,可以扩充

                    //url内容可以进行字符串替换
                    string value = attr.Value;
                    if (attr.Name.ToLower().Equals("url"))
                    {
                        value = value.Replace("[webipaddr]", DefaultWebServer);
                    }
                    MyXml.AddAttribute(newNode, attr.Name, value);
                    break;
                }
            }
            CopyNode(subNode, newNode);
        }
    }
Exemple #2
0
    static private void InitSiteNode(XmlNode siteNode)
    {
        foreach (XmlNode subNode in siteNode.ChildNodes)
        {
            if (subNode.Name != "siteMapNode")
            {
                continue;                                //只处理siteMapNode结点
            }
            string url     = MyXml.GetAttributeValue(subNode, "url");
            string urlflag = ParsePageFlag(url);
            MyXml.AddAttribute(subNode, "pageflag", urlflag);
            InitSiteNode(subNode);

            //不同子菜单项进行特殊处理
            string title = MyXml.GetAttributeValue(subNode, "title");
            switch (title)
            {
            default: break;
            }
        }
    }
Exemple #3
0
    public string GetMenuInfo()
    {
        InitModuleInfo();
        XmlNode rootNode = AppInfo.xmlMenu.SelectSingleNode("xml");

        MyXml.AddAttribute(rootNode, "idxMenu1", (mModuleInfo != null) ? mModuleInfo.idxMenu1 : -1);
        MyXml.AddAttribute(rootNode, "idxMenu2", (mModuleInfo != null) ? mModuleInfo.idxMenu2 : -1);
        MyXml.AddAttribute(rootNode, "idxMenu3", (mModuleInfo != null) ? mModuleInfo.idxMenu3 : -1);
        MyXml.AddAttribute(rootNode, "name", (mModuleInfo != null) ? mModuleInfo.ModuleName : "nonamed");
        MyXml.AddAttribute(rootNode, "username", IPApi.UserName);
        MyXml.AddAttribute(rootNode, "usercall", IPApi.UserCall);
        //一个副本
        XmlNode xmlDoc = AppInfo.xmlMenu.Clone();

        //权限控制
        if (IsAdmin == false)
        {
            rootNode = xmlDoc.SelectSingleNode("xml");
            List <XmlNode> lstFirstSiteMap = new List <XmlNode>();
            foreach (XmlNode node in rootNode.ChildNodes)
            {
                int            nodeCnt    = node.ChildNodes.Count;
                List <XmlNode> lstSiteMap = new List <XmlNode>(nodeCnt);
                foreach (XmlNode subNode in node.ChildNodes)
                {
                    if (subNode.Attributes["right"].Value == "1")
                    {
                        continue;
                    }
                    lstSiteMap.Add(subNode);
                }
                foreach (XmlNode delNode in lstSiteMap)
                {
                    node.RemoveChild(delNode);
                }
                //删除的个数跟该节点子节数量一致时,一级菜单也删除
                if (lstSiteMap.Count != nodeCnt)
                {
                    continue;
                }
                lstFirstSiteMap.Add(node);
            }
            foreach (XmlNode node in lstFirstSiteMap)
            {
                rootNode.RemoveChild(node);
            }

            //
            XmlNodeList list = rootNode.SelectNodes("siteMapNode/siteMapNode");

            switch (mModuleInfo.ModuleName)
            {
            case "定时启动记录":
                rootNode.Attributes["idxMenu1"].Value = "1";
                break;

            default:
                break;
            }
        }

        return(xmlDoc.InnerXml);
    }
    /// <summary>
    ///
    /// </summary>
    /// <returns></returns>
    protected override XmlDocument CreateInitInfo()
    {
        //删除过期设备
        //ReturnValue retVal = uegLogic.DeleteExpire(new UserEquipmentGrantInfo() { EndDate = DateTime.Now });
        //if (retVal.IsSuccess == false) { return MyXml.CreateResultXml(-1, "删除过期授权设备时异常", string.Empty); }

        XmlDocument xmlDoc   = MyXml.CreateResultXml(1, string.Empty, string.Empty);
        XmlNode     rootNode = xmlDoc.SelectSingleNode("xml");

        XmlNode userNode               = MyXml.AddXmlNode(rootNode, "users");
        XmlNode equipmentsNode         = MyXml.AddXmlNode(rootNode, "equipments");
        XmlNode grantequipmentsNode    = MyXml.AddXmlNode(rootNode, "grantequipments");
        XmlNode notgrantequipmentsNode = MyXml.AddXmlNode(rootNode, "notgrantequipments");
        //用户对象
        ReturnValue retVal = userLogic.GetUser(new UserInfo()
        {
            UserID = -1
        });

        if (retVal.IsSuccess == false)
        {
            return(MyXml.CreateResultXml(-1, "加载用户时异常", string.Empty));
        }
        {//排序
            DataView dv = retVal.RetDt.DefaultView;
            dv.Sort      = "username";
            retVal.RetDt = dv.ToTable();
        }
        foreach (DataRow dr in retVal.RetDt.Rows)
        {
            XmlNode itemNode = MyXml.AddXmlNode(userNode, "item");
            MyXml.AddAttribute(itemNode, "key", dr["userid"]);
            MyXml.AddAttribute(itemNode, "name", string.Format("{0}【{1}】", dr["username"], dr["usernick"]));
        }

        //设备对象
        retVal = equLogic.GetEquipment(new EquipmentInfo()
        {
            EIID = -1
        });
        if (retVal.IsSuccess == false)
        {
            return(MyXml.CreateResultXml(-1, "加载设备时异常", string.Empty));
        }
        {//排序
            DataView dv = retVal.RetDt.DefaultView;
            dv.Sort      = "einame";
            retVal.RetDt = dv.ToTable();
        }
        foreach (DataRow dr in retVal.RetDt.Rows)
        {
            XmlNode itemNode = MyXml.AddXmlNode(equipmentsNode, "item");
            MyXml.AddAttribute(itemNode, "key", dr["eiid"]);
            MyXml.AddAttribute(itemNode, "name", dr["einame"]);
        }

        //未授权设备对象
        retVal = equLogic.GetNotGrantEquipment(new EquipmentInfo()
        {
            EIID = -1
        });
        if (retVal.IsSuccess == false)
        {
            return(MyXml.CreateResultXml(-1, "加载未授权设备时异常", string.Empty));
        }
        {//排序
            DataView dv = retVal.RetDt.DefaultView;
            dv.Sort      = "einame";
            retVal.RetDt = dv.ToTable();
        }
        foreach (DataRow dr in retVal.RetDt.Rows)
        {
            XmlNode itemNode = MyXml.AddXmlNode(notgrantequipmentsNode, "item");
            MyXml.AddAttribute(itemNode, "key", dr["eiid"]);
            MyXml.AddAttribute(itemNode, "name", dr["einame"]);
        }

        //昂前登录用户授权设备对象
        retVal = uegLogic.GetUserEquGrant(new UserEquipmentGrantInfo()
        {
            UserID = Tools.GetInt32(IPApi.UserID, int.MaxValue)
        });
        if (retVal.IsSuccess == false)
        {
            return(MyXml.CreateResultXml(-1, "加载未授权设备时异常", string.Empty));
        }
        {//排序
            DataView dv = retVal.RetDt.DefaultView;
            dv.Sort      = "einame";
            retVal.RetDt = dv.ToTable();
        }
        foreach (DataRow dr in retVal.RetDt.Rows)
        {
            XmlNode itemNode = MyXml.AddXmlNode(grantequipmentsNode, "item");
            MyXml.AddAttribute(itemNode, "key", dr["eiid"]);
            MyXml.AddAttribute(itemNode, "name", dr["einame"]);
        }

        return(xmlDoc);
    }