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); } }
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; } } }
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); }