public ActionResult DeleteRule(policyData vData, int id, int linkId) { vData.Rule = new RuleEntity(id); DeleteDecisionNode(vData.Rule.Condition); return(RedirectToAction("EditPolicy", new { id = linkId })); }
public ActionResult CreateRule(policyData vData, int linkId) { vData.PolicyLink = new PolicyLinkEntity(linkId); vData.Policy = vData.PolicyLink.Policy; vData.Rule = new RuleEntity(); vData.Rule.Policy = vData.Policy; vData.Rule.Condition.Type = constants.conditionType; vData.Condition = vData.Rule.Condition; vData.Condition.CombineAnd = true; RuleCollection maxColl = new RuleCollection(); PredicateExpression pe = new PredicateExpression(RuleFields.PolicyId == vData.PolicyLink.PolicyId); object maxObj = maxColl.GetScalar(RuleFieldIndex.Order, null, AggregateFunction.Max, pe); if (maxObj != null && maxObj != DBNull.Value) { vData.Rule.Order = (int)maxObj + 1; } else { vData.Rule.Order = 0; } EffectCollection ecoll = new EffectCollection(); ecoll.GetMulti((EffectFields.Name == "permit")); vData.Rule.EffectId = ecoll[0].Id; vData.Rule.Save(true); return(RedirectToAction("EditRule", new { id = vData.Rule.Id, linkId = linkId })); }
public ActionResult DeleteDecisionNode(policyData vData, int id, int linkId) { vData.PolicyLink = new PolicyLinkEntity(linkId); vData.DecisionNode = new DecisionNodeEntity(id); string redirectAction; int redirectId; if (!vData.DecisionNode.ParentId.HasValue) { redirectAction = GetPolicyAction(vData.PolicyLink.Policy); redirectId = vData.PolicyLink.Id; } else if (vData.DecisionNode.Parent.ParentId.HasValue) { // This is a sub-condition rather than a top-level target condition or rule condition. redirectAction = "EditCondition"; redirectId = vData.DecisionNode.ParentId.Value; } else if (vData.DecisionNode.Parent.TargetCondition.Count > 0) { redirectAction = "EditCondition"; redirectId = vData.DecisionNode.Parent.Id; } else { redirectAction = "EditRule"; redirectId = vData.DecisionNode.Parent.Rule[0].Id; } DeleteDecisionNode(vData.DecisionNode); return(RedirectToAction(redirectAction, new { id = redirectId, linkId = linkId })); }
public ActionResult UpdateAttributeValue(policyData vData, int id, int valueId, int linkId, FormCollection collection) { AttributeValueEntity attrValue = new AttributeValueEntity(valueId); if (attrValue.Literal) { attrValue.Value = collection["Literal"]; } else { if (collection["LookupId"] != null && collection["LookupId"] != string.Empty) { attrValue.AttributeId = int.Parse(collection["LookupId"]); } else { attrValue.AttributeId = null; } } attrValue.Save(); TempData["message"] = policyData.detailsSaved; return(RedirectToAction("EditMatch", new { id = id, linkId = linkId })); }
public ActionResult AddValue(policyData vData, int id, bool literal, int linkId) { AttributeValueEntity ave = new AttributeValueEntity(); ave.AttributeMatchId = id; ave.Literal = literal; AttributeValueCollection maxColl = new AttributeValueCollection(); PredicateExpression pe = new PredicateExpression(AttributeValueFields.AttributeMatchId == id); object maxObj = maxColl.GetScalar(AttributeValueFieldIndex.Order, null, AggregateFunction.Max, pe); if (maxObj != null && maxObj != DBNull.Value) { ave.Order = (int)maxObj + 1; } else { ave.Order = 0; } if (literal) { ave.Value = string.Empty; } else { ave.Value = null; } ave.Save(); return(RedirectToAction("EditMatch", new { id = id, linkId = linkId })); }
public ActionResult DeletePolicy(policyData vData, int id, int linkId) { vData.PolicyLink = new PolicyLinkEntity(id); DeletePolicyLink(vData.PolicyLink); return(RedirectToAction("EditPolicySet", new { id = linkId })); }
public ActionResult CreateSubCondition(policyData vData, int id, int linkId) { vData.PolicyLink = new PolicyLinkEntity(linkId); DecisionNodeEntity ce = new DecisionNodeEntity(id); vData.Condition = new DecisionNodeEntity(); vData.Condition.Type = constants.conditionType; vData.Condition.Parent = ce; DecisionNodeCollection maxColl = new DecisionNodeCollection(); PredicateExpression pe = new PredicateExpression(DecisionNodeFields.ParentId == id); object maxObj = maxColl.GetScalar(DecisionNodeFieldIndex.Order, null, AggregateFunction.Max, pe); if (maxObj != null && maxObj != DBNull.Value) { vData.Condition.Order = (int)maxObj + 1; } else { vData.Condition.Order = 0; } vData.Condition.Save(); ViewData["title"] = "new sub-condition"; return(View("EditCondition", vData)); }
public ActionResult DeletePolicyDoc(policyData vData, int id) { vData.PolicyDocument = new PolicyDocumentEntity(id); DeletePolicyDoc(vData.PolicyDocument); return(RedirectToAction("Index")); }
public ActionResult DeleteValue(policyData vData, int id, int valueId, int linkId) { AttributeValueEntity ave = new AttributeValueEntity(valueId); ave.Delete(); return(RedirectToAction("EditMatch", new { id = id, linkId = linkId })); }
public ActionResult SetConditionOperator(policyData vData, int id, int linkId, FormCollection collection) { vData.Condition = new DecisionNodeEntity(id); vData.Condition.CombineAnd = collection["operator"] == "AND" ? true : false; vData.Condition.Save(); return(RedirectToAction("EditCondition", new { id = id, linkId = linkId })); }
public ActionResult Library(policyData vData, int?id) { if (id.HasValue) { vData.Library = new LibraryEntity(id.Value); } return(View(vData)); }
public ActionResult CreateDocumentPolicySet(policyData vData, int id) { vData.PolicyDocument = new PolicyDocumentEntity(id); CreatePolicy(vData, null, true, false); vData.PolicyDocument.PolicyLinkId = vData.PolicyLink.Id; vData.PolicyDocument.Save(true); return(RedirectToAction("EditPolicySet", new { id = vData.PolicyLink.Id })); }
public ActionResult EditPolicyDoc(policyData vData, int id) { vData.PolicyDocument = new PolicyDocumentEntity(id); if (!vData.PolicyDocument.IsNew) { vData.Policy = vData.PolicyDocument.PolicyLink.Policy; } return(View(vData)); }
public ActionResult SetRuleEffect(policyData vData, int id, int linkId, FormCollection collection) { vData.Rule = new RuleEntity(id); vData.Rule.EffectId = int.Parse(collection["EffectId"]); vData.Rule.Save(true); TempData["message"] = policyData.detailsSaved; return(RedirectToAction("EditRule", new { id = vData.Rule.Id, linkId = linkId })); }
public ActionResult EditPolicySet(policyData vData, int id) { SortExpression se = new SortExpression(PolicyLinkFields.Order | SortOperator.Ascending); PrefetchPath pp = new PrefetchPath(EntityType.PolicyLinkEntity); pp.Add(PolicyLinkEntity.PrefetchPathChildren, 0, null, null, se); vData.PolicyLink = new PolicyLinkEntity(id, pp); vData.PolicySet = vData.PolicyLink.Policy; return(View(vData)); }
public ActionResult PolicySetDetailUpdate(policyData vData, int id, int id2, FormCollection collection) { vData.PolicySet = new PolicyEntity(id); vData.PolicySet.Description = collection["description"]; vData.PolicySet.CombineModeId = int.Parse(collection["combineModeId"]); vData.PolicySet.Save(true); TempData["message"] = policyData.detailsSaved; return(RedirectToAction("EditPolicySet", new { id = id2 })); }
public ActionResult EditPolicy(policyData vData, int id) { vData.PolicyLink = new PolicyLinkEntity(id); SortExpression se = new SortExpression(RuleFields.Order | SortOperator.Ascending); PrefetchPath pp = new PrefetchPath(EntityType.PolicyEntity); pp.Add(PolicyEntity.PrefetchPathRule, 0, null, null, se); vData.Policy = new PolicyEntity(vData.PolicyLink.PolicyId, pp); return(View(vData)); }
public ActionResult PolicyDetailUpdate(policyData vData, int id, FormCollection collection) { vData.PolicyLink = new PolicyLinkEntity(id); vData.Policy = vData.PolicyLink.Policy; vData.Policy.Description = collection["description"]; vData.Policy.CombineModeId = int.Parse(collection["combineModeId"]); vData.Policy.Save(true); TempData["message"] = policyData.detailsSaved; return(RedirectToAction(GetPolicyAction(vData.Policy), new { id = vData.PolicyLink.Id })); }
public ActionResult EditRule(policyData vData, int id, int linkId) { vData.PolicyLink = new PolicyLinkEntity(linkId); SortExpression se = new SortExpression(DecisionNodeFields.Order | SortOperator.Ascending); PrefetchPath pp = new PrefetchPath(EntityType.RuleEntity); pp.Add(RuleEntity.PrefetchPathCondition).SubPath.Add(DecisionNodeEntity.PrefetchPathChildren, 0, null, null, se); vData.Rule = new RuleEntity(id, pp); vData.Condition = vData.Rule.Condition; return(View(vData)); }
public ActionResult ClearPolicyDoc(policyData vData, int id) { vData.PolicyDocument = new PolicyDocumentEntity(id); vData.PolicyLink = vData.PolicyDocument.PolicyLink; vData.PolicyDocument.PolicyLinkId = null; vData.PolicyDocument.Save(); if (!vData.PolicyLink.IsNew) { DeletePolicyLink(vData.PolicyLink); } return(RedirectToAction("EditPolicyDoc", new { id = id })); }
public ActionResult AddPolicy(policyData vData, int id, bool isDoc) { vData.IsDocumentLink = isDoc; if (isDoc) { vData.PolicyDocument = new PolicyDocumentEntity(id); } else { vData.PolicyLink = new PolicyLinkEntity(id); } return(View(vData)); }
public ActionResult EditCondition(policyData vData, int id, int linkId) { vData.PolicyLink = new PolicyLinkEntity(linkId); SortExpression se = new SortExpression(DecisionNodeFields.Order | SortOperator.Ascending); PrefetchPath pp = new PrefetchPath(EntityType.DecisionNodeEntity); pp.Add(DecisionNodeEntity.PrefetchPathChildren, 0, null, null, se); vData.Condition = new DecisionNodeEntity(id, pp); ViewData["title"] = "edit condition"; return(View(vData)); }
public ActionResult PolicyDocDetailUpdate(policyData vData, int id, FormCollection collection) { vData.PolicyDocument = new PolicyDocumentEntity(id); if (vData.PolicyDocument.IsNew) { vData.PolicyDocument.LibraryId = vData.Library.Id; } vData.PolicyDocument.Name = collection["name"]; vData.PolicyDocument.Save(true); TempData["message"] = policyData.detailsSaved; return(RedirectToAction("EditPolicyDoc", new { id = vData.PolicyDocument.Id })); }
public ActionResult DecisionNodeOrder(policyData vData, int id, int id2, int linkId, FormCollection collection) { DecisionNodeEntity match = new DecisionNodeEntity(id2); DecisionNodeCollection coll = new DecisionNodeCollection(); PredicateExpression pe = new PredicateExpression(DecisionNodeFields.Id != match.Id); pe.Add(DecisionNodeFields.ParentId == id); SortExpression se = null; if (collection["up"] != null) { // Find all categories with display index less than ours. pe.Add(DecisionNodeFields.Order <= match.Order); // Order by display index, highest first. se = new SortExpression(DecisionNodeFields.Order | SortOperator.Descending); } else { // Find all categories with display index greater than ours. pe.Add(DecisionNodeFields.Order >= match.Order); // Order by display index, lowest first. se = new SortExpression(DecisionNodeFields.Order | SortOperator.Ascending); } // Swap with closest one. if (coll.GetMulti(pe, 1, se) && coll.Count > 0) { int temp = coll[0].Order; coll[0].Order = match.Order; match.Order = temp; match.Save(); coll.SaveMulti(); } string action = collection["backTo"]; if (action == "EditRule") { vData.Condition = new DecisionNodeEntity(id); id = vData.Condition.Rule[0].Id; } return(RedirectToAction(action, new { id = id, linkId = linkId })); }
public ActionResult DeletePolicyFromLib(policyData vData, int id) { try { if (!DeletePolicyFromLib(id)) { TempData["message"] = "you can't delete this policy - it is in use"; } } catch (Exception ex) { TempData["message"] = "you can't delete this policy - it is in use"; } return(RedirectToAction("Library")); }
public ActionResult DownloadPolicyDoc(policyData vData, int id) { vData.PolicyDocument = new PolicyDocumentEntity(id); string path = string.Format("~/exports/{0}.xml", Path.GetRandomFileName()); string mappedPath = Server.MapPath(path); xmlGenerate gen = new xmlGenerate(); string xml = gen.generate(vData.PolicyDocument); StreamWriter sw = new StreamWriter(mappedPath); sw.Write(xml); sw.Close(); return(File(mappedPath, "text/xml", vData.PolicyDocument.Name + ".xml")); }
public ActionResult SetAttribute(policyData vData, int id, int id2, int linkId, FormCollection collection) { vData.DecisionNode = new DecisionNodeEntity(id); if (vData.DecisionNode.IsNew) { vData.DecisionNode.Type = constants.attributeMatchType; DecisionNodeCollection maxColl = new DecisionNodeCollection(); PredicateExpression pe = new PredicateExpression(DecisionNodeFields.ParentId == id2); object maxObj = maxColl.GetScalar(DecisionNodeFieldIndex.Order, null, AggregateFunction.Max, pe); if (maxObj != null && maxObj != DBNull.Value) { vData.DecisionNode.Order = (int)maxObj + 1; } else { vData.DecisionNode.Order = 0; } AttributeValueEntity ave = new AttributeValueEntity(); ave.AttributeMatch = vData.DecisionNode; ave.Literal = true; ave.Value = string.Empty; } vData.DecisionNode.ParentId = id2; vData.DecisionNode.AttributeId = int.Parse(collection["AttributeId"]); if (vData.DecisionNode.Attribute.AttributeType.Name == "uri") { vData.DecisionNode.Extra = collection["uriExtra"]; } else if (vData.DecisionNode.Attribute.AttributeType.Name == "param") { vData.DecisionNode.Extra = collection["extra"]; } else { vData.DecisionNode.Extra = string.Empty; } vData.DecisionNode.Save(true); TempData["message"] = policyData.detailsSaved; return(RedirectToAction("EditMatch", new { id = vData.DecisionNode.Id, linkId = linkId })); }
public ActionResult ReferencePolicy(policyData vData, int id, bool isDoc, FormCollection collection) { int parse; if (int.TryParse(collection["libraryPolicyId"], out parse) && parse > 0) { PolicyEntity copy = duplicator.dupPolicy(parse); vData.PolicyLink = new PolicyLinkEntity(); vData.PolicyLink.PolicyId = copy.Id; if (isDoc) { vData.PolicyDocument = new PolicyDocumentEntity(id); vData.PolicyDocument.PolicyLink = vData.PolicyLink; vData.PolicyDocument.Save(true); return(RedirectToAction("EditPolicyDoc", new { id = id })); } else { vData.PolicyLink.ParentId = id; PolicyLinkCollection maxColl = new PolicyLinkCollection(); PredicateExpression pe = new PredicateExpression(PolicyLinkFields.ParentId == id); object maxObj = maxColl.GetScalar(PolicyLinkFieldIndex.Order, null, AggregateFunction.Max, pe); if (maxObj != null && maxObj != DBNull.Value) { vData.PolicyLink.Order = (int)maxObj + 1; } else { vData.PolicyLink.Order = 0; } vData.PolicyLink.Save(); return(RedirectToAction("EditPolicySet", new { id = id })); } } else { return(RedirectToAction("AddPolicy", new { id = id, isDoc = isDoc })); } }
public ActionResult EditMatch(policyData vData, int id, int linkId) { vData.PolicyLink = new PolicyLinkEntity(linkId); SortExpression se = new SortExpression(AttributeValueFields.Order | SortOperator.Ascending); PrefetchPath pp = new PrefetchPath(EntityType.DecisionNodeEntity); pp.Add(DecisionNodeEntity.PrefetchPathAttributeValue, 0, null, null, se); vData.DecisionNode = new DecisionNodeEntity(id, pp); ViewData["title"] = "edit match"; // if (vData.DecisionNode.Parent.Rule.Count > 0) ViewData["selectList"] = vData.allAttributes(vData.DecisionNode.AttributeId); //else // ViewData["selectList"] = vData.subjectAttributes(vData.DecisionNode.AttributeId); return(View(vData)); }
public ActionResult CreateTargetCondition(policyData vData, int id, int linkId) { vData.PolicyLink = new PolicyLinkEntity(linkId); vData.Target = new TargetEntity(id); vData.Condition = new DecisionNodeEntity(); vData.Condition.Type = constants.conditionType; vData.Condition.CombineAnd = true; TargetConditionEntity tce = new TargetConditionEntity(); tce.Target = vData.Target; tce.DecisionNode = vData.Condition; tce.Save(true); ViewData["title"] = "new target condition"; return(View("EditTarget", vData)); }