public string GetPowerTreexXmlText(string moduleTypeID, string AuthorizeGroupID) { new UserRule(); XmlDocument xmlDocSource = new XmlDocument(); WTF.Power.Entity.Sys_ModuleType type = this.CurrentEntities.sys_moduletype.First <WTF.Power.Entity.Sys_ModuleType>(s => s.ModuleTypeID == moduleTypeID); XmlElement newChild = xmlDocSource.CreateElement("Module"); newChild.SetAttribute("ModuleID", RolePowerKey.Create(type.ModuleTypeID).ToKey); newChild.SetAttribute("ModuleName", type.ModuleTypeName); xmlDocSource.AppendChild(newChild); List <WTF.Power.Entity.Sys_Module> list = this.CurrentEntities.GetAuthorizeGroupPowerModule(AuthorizeGroupID, moduleTypeID).ToList <WTF.Power.Entity.Sys_Module>(); List <string> editModuleModuleList = (from s in list where s.IsEdit select s.ModuleCode).ToList <string>(); List <WTF.Power.Entity.Sys_Module> list2 = new List <WTF.Power.Entity.Sys_Module>(); if (editModuleModuleList.Count > 0) { list2 = (from s in this.CurrentEntities.sys_module where editModuleModuleList.Contains(s.ModuleCode) && !s.IsEdit select s).ToList <WTF.Power.Entity.Sys_Module>(); } this.CreatePowerChildElement(xmlDocSource, AuthorizeGroupID, type.ModuleTypeID, Guid.Empty.ToString(), false, "", newChild, list, list2); return(xmlDocSource.InnerXml); }
public string GetPowerTreexXmlText(string moduleTypeID, bool isSupper = false) { new UserRule(); XmlDocument xmlDocSource = new XmlDocument(); WTF.Power.Entity.Sys_ModuleType type = this.CurrentEntities.sys_moduletype.FirstOrDefault <WTF.Power.Entity.Sys_ModuleType>(s => s.ModuleTypeID == moduleTypeID); List <WTF.Power.Entity.Sys_Module> list = null; if (isSupper) { list = (from s in this.CurrentEntities.sys_module where (s.ModuleTypeID == moduleTypeID) && s.IsPower select s).ToList <WTF.Power.Entity.Sys_Module>(); } else { list = (from s in this.CurrentEntities.sys_module where ((s.ModuleTypeID == moduleTypeID) && s.IsPower) && !s.IsSupperPower select s).ToList <WTF.Power.Entity.Sys_Module>(); } XmlElement newChild = xmlDocSource.CreateElement("Module"); newChild.SetAttribute("ModuleID", RolePowerKey.Create(type.ModuleTypeID).ToKey); newChild.SetAttribute("ModuleName", type.ModuleTypeName); xmlDocSource.AppendChild(newChild); this.CreatePowerChildElement(xmlDocSource, "", type.ModuleTypeID, Guid.Empty.ToString(), false, "", newChild, list, null); return(xmlDocSource.InnerXml); }
private void CreateEachModeuleXmlElement(XmlDocument xmlDocSource, string coteID, string CoteModuleID, bool IsCoteSupper, Sys_Module objSys_Module, XmlElement objXmlElement, List <Sys_Module> objSys_ModuleList, List <sys_authorizegrouppower> objCoteRolePowerList, List <Sys_Module> AddSys_ModuleList) { Func <Sys_Module, bool> predicate = null; Func <Sys_Module, bool> func2 = null; Func <sys_authorizegrouppower, bool> func3 = null; string SearchModuleID = objSys_Module.ModuleID; if (objSys_Module.IsEdit) { if (predicate == null) { predicate = s => (!s.IsEdit && (s.ParentModuleID == objSys_Module.ParentModuleID)) && (s.ModuleCode == objSys_Module.ModuleCode); } Sys_Module module = objSys_ModuleList.FirstOrDefault <Sys_Module>(predicate); if (module != null) { SearchModuleID = module.ModuleID; } else if (AddSys_ModuleList != null) { if (func2 == null) { func2 = s => (!s.IsEdit && (s.ParentModuleID == objSys_Module.ParentModuleID)) && (s.ModuleCode == objSys_Module.ModuleCode); } module = AddSys_ModuleList.FirstOrDefault <Sys_Module>(func2); if (module != null) { SearchModuleID = module.ModuleID; } } } List <string> list = null; if ((objCoteRolePowerList != null) && !IsCoteSupper) { if (func3 == null) { func3 = s => s.CoteID == coteID; } list = (from s in objCoteRolePowerList.Where <sys_authorizegrouppower>(func3) select s.ModuleID).ToList <string>(); } foreach (Sys_Module module2 in from p in objSys_ModuleList where p.ParentModuleID == SearchModuleID orderby p.SortIndex select p) { if ((list == null) || list.Contains(module2.ModuleID)) { XmlElement newChild = xmlDocSource.CreateElement("Module"); newChild.SetAttribute("ModuleID", RolePowerKey.Create(CoteModuleID, coteID, module2.ModuleID, false).ToKey); newChild.SetAttribute("ModuleName", module2.ModuleName); objXmlElement.AppendChild(newChild); this.CreateEachModeuleXmlElement(xmlDocSource, coteID, CoteModuleID, IsCoteSupper, module2, newChild, objSys_ModuleList, objCoteRolePowerList, AddSys_ModuleList); } } }
public XmlElement GetCotePowerXmlElement(XmlDocument xmlDocSource, string AuthorizeGroupID, Sys_Module objCoteModule, List<Sys_Module> objSys_ModuleList, List<Sys_Module> AddSys_ModuleList) { List<CoteInfo> allCoteInfoList = null; List<sys_authorizegrouppower> source = null; allCoteInfoList = this.GetAllCoteInfoList(); if (AuthorizeGroupID.IsNull()) { allCoteInfoList = this.GetAllCoteInfoList(); } else { source = this.GetAuthorizeGroupCotePower(AuthorizeGroupID, objCoteModule.ModuleID); if (source.Count == 0) { return null; } if (source.Any<sys_authorizegrouppower>(s => s.IsCoteSupper)) { allCoteInfoList = this.GetAllCoteInfoList(); source = null; ModuleRule rule = new ModuleRule(); string ModuleIDPath = rule.Sys_Module.FirstOrDefault<Sys_Module>(s => (s.ModuleID == objCoteModule.ModuleID)).ModuleIDPath; objSys_ModuleList.RemoveAll(s => s.ModuleIDPath.StartsWith(ModuleIDPath)); objSys_ModuleList.AddRange(from s in rule.Sys_Module where (s.ModuleIDPath.StartsWith(ModuleIDPath) && s.IsPower) && !s.IsSupperPower select s); } else { allCoteInfoList = this.GetCoteInfoKeyList((from s in source select s.CoteID).Distinct<string>().ToList<string>().ConvertListToString<string>()); } } XmlElement element = xmlDocSource.CreateElement("Module"); element.SetAttribute("ModuleID", RolePowerKey.Create(objCoteModule.ModuleID).ToKey); element.SetAttribute("ModuleName", objCoteModule.ModuleName); if (AuthorizeGroupID.IsNull() || (source == null)) { XmlElement newChild = xmlDocSource.CreateElement("Module"); newChild.SetAttribute("ModuleID", RolePowerKey.Create(objCoteModule.ModuleID, objCoteModule.ModuleID, objCoteModule.ModuleID, false, true).ToKey); newChild.SetAttribute("ModuleName", "***" + objCoteModule.ModuleName + "***所有权限"); element.AppendChild(newChild); } foreach (CoteInfo info in allCoteInfoList) { XmlElement element3 = xmlDocSource.CreateElement("Module"); element3.SetAttribute("ModuleID", RolePowerKey.Create(objCoteModule.ModuleID, info.ID, objCoteModule.ModuleID, false).ToKey); element3.SetAttribute("ModuleName", info.Name); element.AppendChild(element3); this.CreateEachModeuleXmlElement(xmlDocSource, info.ID, objCoteModule.ModuleID, objCoteModule, element3, objSys_ModuleList, source, AddSys_ModuleList); } return element; }
private void CreateChildShareModeuleXmlElement(XmlDocument xmlDocSource, string ShareModuleID, string CoteID, string ModuleID, string ParentModuleID, bool IsEdit, string ModuleCode, XmlElement objXmlElement, List <WTF.Power.Entity.Sys_Module> objSys_ModuleList, List <WTF.Power.Entity.Sys_Module> AddSys_ModuleList) { Func <WTF.Power.Entity.Sys_Module, bool> predicate = null; Func <WTF.Power.Entity.Sys_Module, bool> func2 = null; string SearchModuleID = ModuleID; if (IsEdit) { if (predicate == null) { predicate = s => (!s.IsEdit && (s.ParentModuleID == ParentModuleID)) && (s.ModuleCode == ModuleCode); } WTF.Power.Entity.Sys_Module module = objSys_ModuleList.FirstOrDefault <WTF.Power.Entity.Sys_Module>(predicate); if (module != null) { SearchModuleID = module.ModuleID; } else if (AddSys_ModuleList != null) { if (func2 == null) { func2 = s => (!s.IsEdit && (s.ParentModuleID == ParentModuleID)) && (s.ModuleCode == ModuleCode); } module = AddSys_ModuleList.FirstOrDefault <WTF.Power.Entity.Sys_Module>(func2); if (module != null) { SearchModuleID = module.ModuleID; } } } foreach (WTF.Power.Entity.Sys_Module module2 in from p in objSys_ModuleList where p.ParentModuleID == SearchModuleID orderby p.SortIndex select p) { XmlElement newChild = xmlDocSource.CreateElement("Module"); newChild.SetAttribute("ModuleID", RolePowerKey.Create(ShareModuleID, CoteID, module2.ModuleID, true).ToKey); newChild.SetAttribute("ModuleName", module2.ModuleName); objXmlElement.AppendChild(newChild); this.CreateChildShareModeuleXmlElement(xmlDocSource, ShareModuleID, CoteID, module2.ModuleID, module2.ParentModuleID, module2.IsEdit, module2.ModuleCode, newChild, objSys_ModuleList, AddSys_ModuleList); } }
private void CreateCoteChildMenuPowerXmlElement(XmlDocument xmlDocSource, string ParentID, Sys_Module objCoteModule, XmlElement objXmlElement, List <CoteInfo> objCoteInfoList, List <Sys_Module> objSys_ModuleList, List <sys_authorizegrouppower> objCoteRolePowerList, List <Sys_Module> AddSys_ModuleList) { using (IEnumerator <CoteInfo> enumerator = (from s in objCoteInfoList where s.ParentID == ParentID select s).GetEnumerator()) { while (enumerator.MoveNext()) { Func <CoteInfo, bool> predicate = null; CoteInfo objCoteInfo = enumerator.Current; XmlElement newChild = xmlDocSource.CreateElement("Module"); newChild.SetAttribute("ModuleID", RolePowerKey.Create(objCoteModule.ModuleID, objCoteInfo.ID, objCoteModule.ModuleID, false).ToKey); newChild.SetAttribute("ModuleName", objCoteInfo.Name); objXmlElement.AppendChild(newChild); bool isCoteSupper = this.ParentIsCoteSupper(objCoteInfo, objCoteInfoList, objCoteRolePowerList); if (predicate == null) { predicate = s => s.ParentID == objCoteInfo.ID; } if (objCoteInfoList.Any <CoteInfo>(predicate)) { if (this.CurrentAuthorizeGroupID.IsNull() || isCoteSupper) { XmlElement element2 = xmlDocSource.CreateElement("Module"); element2.SetAttribute("ModuleID", RolePowerKey.Create(objCoteModule.ModuleID, objCoteInfo.ID, objCoteModule.ModuleID, false, true).ToKey); element2.SetAttribute("ModuleName", "***" + objCoteInfo.Name + "***所有权限"); newChild.AppendChild(element2); } if (this.IsParentUrl) { this.CreateEachModeuleXmlElement(xmlDocSource, objCoteInfo.ID, objCoteModule.ModuleID, isCoteSupper, objCoteModule, newChild, objSys_ModuleList, objCoteRolePowerList, AddSys_ModuleList); } } else { this.CreateEachModeuleXmlElement(xmlDocSource, objCoteInfo.ID, objCoteModule.ModuleID, isCoteSupper, objCoteModule, newChild, objSys_ModuleList, objCoteRolePowerList, AddSys_ModuleList); } this.CreateCoteChildMenuPowerXmlElement(xmlDocSource, objCoteInfo.ID, objCoteModule, newChild, objCoteInfoList, objSys_ModuleList, objCoteRolePowerList, AddSys_ModuleList); } } }
public XmlElement GetCotePowerXmlElement(XmlDocument xmlDocSource, string AuthorizeGroupID, Sys_Module objCoteModule, List <Sys_Module> objSys_ModuleList, List <Sys_Module> AddSys_ModuleList) { this.CurrentAuthorizeGroupID = AuthorizeGroupID; List <CoteInfo> source = null; List <sys_authorizegrouppower> authorizeGroupCotePower = null; if (AuthorizeGroupID.IsNull()) { source = this.GetAllCoteInfoList(); } else { authorizeGroupCotePower = this.GetAuthorizeGroupCotePower(AuthorizeGroupID, objCoteModule.ModuleID); if (authorizeGroupCotePower.Count == 0) { return(null); } if (authorizeGroupCotePower.Any <sys_authorizegrouppower>(s => s.IsCoteSupper)) { source = new List <CoteInfo>(); foreach (string str in (from s in authorizeGroupCotePower where s.IsCoteSupper select s.CoteID).Distinct <string>()) { source.AddRange(this.GetAllCoteInfoList(str)); } source.AddRange(this.GetCoteInfoKeyList((from s in authorizeGroupCotePower where !s.IsCoteSupper select s.CoteID).Distinct <string>().ToList <string>().ConvertListToString <string>())); ModuleRule rule = new ModuleRule(); string ModuleIDPath = rule.Sys_Module.FirstOrDefault <Sys_Module>(s => (s.ModuleID == objCoteModule.ModuleID)).ModuleIDPath; objSys_ModuleList.RemoveAll(s => s.ModuleIDPath.StartsWith(ModuleIDPath)); objSys_ModuleList.AddRange(from s in rule.Sys_Module where (s.ModuleIDPath.StartsWith(ModuleIDPath) && s.IsPower) && !s.IsSupperPower select s); } else { source = this.GetCoteInfoKeyList((from s in authorizeGroupCotePower select s.CoteID).Distinct <string>().ToList <string>().ConvertListToString <string>()); } } source = source.Distinct <CoteInfo>(new CoteInfoComparer()).ToList <CoteInfo>(); CoteInfo objCoteInfo = source.FirstOrDefault <CoteInfo>(s => s.ID == this.RootIDValue); if (objCoteInfo == null) { return(null); } XmlElement objXmlElement = xmlDocSource.CreateElement("Module"); objXmlElement.SetAttribute("ModuleID", RolePowerKey.Create(objCoteModule.ModuleID, objCoteInfo.ID, objCoteModule.ModuleID, false).ToKey); objXmlElement.SetAttribute("ModuleName", objCoteModule.ModuleName); bool isCoteSupper = false; if (AuthorizeGroupID.IsNull() || authorizeGroupCotePower.Any <sys_authorizegrouppower>(s => ((s.CoteID == objCoteInfo.ID) && s.IsCoteSupper))) { isCoteSupper = true; XmlElement newChild = xmlDocSource.CreateElement("Module"); newChild.SetAttribute("ModuleID", RolePowerKey.Create(objCoteModule.ModuleID, objCoteInfo.ID, objCoteModule.ModuleID, false, true).ToKey); newChild.SetAttribute("ModuleName", "***" + objCoteModule.ModuleName + "***所有权限"); objXmlElement.AppendChild(newChild); } if (source.Any <CoteInfo>(s => s.ParentID == objCoteInfo.ID)) { if (this.IsParentUrl) { this.CreateEachModeuleXmlElement(xmlDocSource, objCoteInfo.ID, objCoteModule.ModuleID, isCoteSupper, objCoteModule, objXmlElement, objSys_ModuleList, authorizeGroupCotePower, AddSys_ModuleList); } } else { this.CreateEachModeuleXmlElement(xmlDocSource, objCoteInfo.ID, objCoteModule.ModuleID, isCoteSupper, objCoteModule, objXmlElement, objSys_ModuleList, authorizeGroupCotePower, AddSys_ModuleList); } this.CreateCoteChildMenuPowerXmlElement(xmlDocSource, objCoteInfo.ID, objCoteModule, objXmlElement, source, objSys_ModuleList, authorizeGroupCotePower, AddSys_ModuleList); return(objXmlElement); }
private void CreatePowerChildElement(XmlDocument xmlDocSource, string AuthorizeGroupID, string ModuleID, string ParentModuleID, bool IsEdit, string ModuleCode, XmlElement objXmlElement, List <WTF.Power.Entity.Sys_Module> objSys_ModuleList, List <WTF.Power.Entity.Sys_Module> AddSys_ModuleList) { Func <WTF.Power.Entity.Sys_Module, bool> predicate = null; Func <WTF.Power.Entity.Sys_Module, bool> func3 = null; string SearchModuleID = ModuleID; if (IsEdit) { if (predicate == null) { predicate = s => (!s.IsEdit && (s.ParentModuleID == ParentModuleID)) && (s.ModuleCode == ModuleCode); } WTF.Power.Entity.Sys_Module module = objSys_ModuleList.FirstOrDefault <WTF.Power.Entity.Sys_Module>(predicate); if (module != null) { SearchModuleID = module.ModuleID; } else if (AddSys_ModuleList != null) { if (func3 == null) { func3 = s => (!s.IsEdit && (s.ParentModuleID == ParentModuleID)) && (s.ModuleCode == ModuleCode); } module = AddSys_ModuleList.FirstOrDefault <WTF.Power.Entity.Sys_Module>(func3); if (module != null) { SearchModuleID = module.ModuleID; } } } using (IEnumerator <WTF.Power.Entity.Sys_Module> enumerator = (from p in objSys_ModuleList where p.ParentModuleID == SearchModuleID orderby p.SortIndex select p).GetEnumerator()) { while (enumerator.MoveNext()) { Func <WTF.Power.Entity.Sys_Module, bool> func = null; WTF.Power.Entity.Sys_Module objModule = enumerator.Current; if (objModule.ModuleCoteID > 0) { if (func == null) { func = s => s.ModuleIDPath.StartsWith(objModule.ModuleIDPath); } XmlElement newChild = this.CreateCoteModeule(xmlDocSource, AuthorizeGroupID, objModule, objSys_ModuleList.Where <WTF.Power.Entity.Sys_Module>(func).ToList <WTF.Power.Entity.Sys_Module>(), AddSys_ModuleList); if (newChild != null) { objXmlElement.AppendChild(newChild); } } else { XmlElement element2 = xmlDocSource.CreateElement("Module"); element2.SetAttribute("ModuleID", RolePowerKey.Create(objModule.ModuleID).ToKey); element2.SetAttribute("ModuleName", objModule.ModuleName); objXmlElement.AppendChild(element2); if (objModule.ShareModuleID.IsNoNull()) { this.CreateChildShareModeuleXmlElement(xmlDocSource, objModule.ShareModuleID, objModule.ModuleID, objModule.ShareModuleID, objModule.ShareModuleID, objModule.IsEdit, objModule.ModuleCode, element2, objSys_ModuleList, AddSys_ModuleList); } else { this.CreatePowerChildElement(xmlDocSource, AuthorizeGroupID, objModule.ModuleID, objModule.ParentModuleID, objModule.IsEdit, objModule.ModuleCode, element2, objSys_ModuleList, AddSys_ModuleList); } } } } }