private void loadPolicySet(int idx, string title, PolicyLinkEntity ple, XmlNode node) { ple.Policy.Set = true; loadPolicyBase(idx, title, ple.Policy, node); int policyCount = 0; int policySetCount = 0; foreach (XmlNode kid in node.ChildNodes) { if (kid.LocalName != "policy" && kid.LocalName != "policy-set") { continue; } PolicyLinkEntity pleKid = new PolicyLinkEntity(); pleKid.Order = policyCount + policySetCount; pleKid.Parent = ple; pleKid.Policy = new PolicyEntity(); pleKid.Policy.LibraryId = ple.Policy.LibraryId; if (kid.NodeType == XmlNodeType.Element && kid.LocalName == "policy") { loadPolicy(++policyCount, ple.Policy.Description, pleKid, kid); } else if (kid.NodeType == XmlNodeType.Element && kid.LocalName == "policy-set") { loadPolicySet(++policySetCount, ple.Policy.Description, pleKid, kid); } } }
/// <summary>Creates a new, empty PolicyLinkEntity object.</summary> /// <returns>A new, empty PolicyLinkEntity object.</returns> public override IEntity Create() { IEntity toReturn = new PolicyLinkEntity(); // __LLBLGENPRO_USER_CODE_REGION_START CreateNewPolicyLink // __LLBLGENPRO_USER_CODE_REGION_END return(toReturn); }
static private void DeletePolicyDoc(PolicyDocumentEntity pde) { PolicyLinkEntity policyLink = pde.PolicyLink; pde.Delete(); if (!policyLink.IsNew) { DeletePolicyLink(policyLink); } }
static private void DeletePolicyLink(PolicyLinkEntity ple) { foreach (PolicyLinkEntity child in ple.Children) { DeletePolicyLink(child); } PolicyEntity delPolicy = ple.Policy; ple.Delete(); DeletePolicy(delPolicy); }
private void loadPolicy(int idx, string title, PolicyLinkEntity ple, XmlNode node) { loadPolicyBase(idx, title, ple.Policy, node); XmlNodeList rules = node.SelectNodes("rule"); int ruleIdx = 0; foreach (XmlNode rule in rules) { loadRule(ruleIdx, ple.Policy, rule); ruleIdx++; } }
private PolicyDocumentEntity importFile(baseData vData, string title, string filepath) { AttributeCollection acoll = new AttributeCollection(); acoll.GetMulti(AttributeFields.Name == "Literal"); if (acoll.Count == 0) { throw new Exception("can't find literal attribute"); } m_literalAttribute = acoll[0]; XmlDocument doc = new XmlDocument(); doc.Load(filepath); PolicyDocumentEntity pde = new PolicyDocumentEntity(); pde.LibraryId = vData.Library.Id; pde.Name = title; PolicyLinkEntity ple = new PolicyLinkEntity(); ple.Policy = new PolicyEntity(); ple.Policy.LibraryId = pde.LibraryId; pde.PolicyLink = ple; XmlNode policySet = doc.SelectSingleNode("policy-set"); if (policySet != null) { loadPolicySet(1, title, ple, policySet); } else { XmlNode policy = doc.SelectSingleNode("policy"); loadPolicy(1, title, ple, policy); } pde.Save(true); return(pde); }
public ActionResult PolicyOrder(policyData vData, int id, FormCollection collection) { PolicyLinkEntity policyLink = new PolicyLinkEntity(id); PolicyLinkCollection coll = new PolicyLinkCollection(); PredicateExpression pe = new PredicateExpression(PolicyLinkFields.Id != policyLink.Id); pe.Add(PolicyLinkFields.ParentId == policyLink.ParentId); SortExpression se = null; if (collection["up"] != null) { // Find all categories with display index less than ours. pe.Add(PolicyLinkFields.Order <= policyLink.Order); // Order by display index, highest first. se = new SortExpression(PolicyLinkFields.Order | SortOperator.Descending); } else { // Find all categories with display index greater than ours. pe.Add(PolicyLinkFields.Order >= policyLink.Order); // Order by display index, lowest first. se = new SortExpression(PolicyLinkFields.Order | SortOperator.Ascending); } // Swap with closest one. if (coll.GetMulti(pe, 1, se) && coll.Count > 0) { int temp = coll[0].Order; coll[0].Order = policyLink.Order; policyLink.Order = temp; policyLink.Save(); coll.SaveMulti(); } return(RedirectToAction("EditPolicySet", new { id = policyLink.ParentId })); }
private void generate(StringBuilder sb, PolicyLinkEntity policyLink) { newLine(sb); if (policyLink.Policy.Set) { sb.AppendFormat("<policy-set combine=\"{0}\" id=\"{1}\">", policyLink.Policy.CombineMode.Name, policyLink.Policy.Uid.ToString()); generate(sb, policyLink.Policy.Target); policyLink.Children.Sort(PolicyLinkFields.Order.FieldIndex, System.ComponentModel.ListSortDirection.Ascending); foreach (PolicyLinkEntity ple in policyLink.Children) { m_indent++; generate(sb, ple); m_indent--; } newLine(sb); sb.Append("</policy-set>"); } else { sb.AppendFormat("<policy combine=\"{0}\" id=\"{1}\" description=\"{2}\">", policyLink.Policy.CombineMode.Name, policyLink.Policy.Uid.ToString(), HttpUtility.HtmlAttributeEncode(policyLink.Policy.Description)); generate(sb, policyLink.Policy.Target); policyLink.Policy.Rule.Sort(RuleFields.Order.FieldIndex, System.ComponentModel.ListSortDirection.Ascending); foreach (RuleEntity re in policyLink.Policy.Rule) { m_indent++; generate(sb, re); m_indent--; } newLine(sb); sb.Append("</policy>"); } }