private void CreateLDAPEnabledOfflinePreRoutingSet() { Append(new NxComment("Pre-routing offline enabled")); NxObjectLookup isLdapEnabled = new NxObjectLookup(Guid.NewGuid().ToString(), "LDAPAnalyzer", "IsLdapEnabled"); NxLogic nxLogic = new NxLogic(); NxIf nxIf = new NxIf(); NxAnd nxAnd = new NxAnd(); NxIsTrue nxIsTrue = new NxIsTrue(isLdapEnabled.Identifier); NxDo nxDo = new NxDo(); nxAnd.Append(nxIsTrue); nxIf.Append(nxAnd); nxDo.Append(new NxComment("Online routing")); nxDo.Append(new NxEvaluate("RuleFired", BuildRuleFiredParameters())); nxIf.Append(nxDo); nxLogic.Append(nxIf); NxElse nxElse = new NxElse(); nxElse.Append(new NxComment("Offline routing")); nxElse.Append(new NxEvaluate("RuleFired", BuildOfflineRuleFiredParameters())); nxLogic.Append(nxElse); Append(isLdapEnabled); AppendLogic(nxLogic); }
public void TestNxElse() { NxElse nxElse = new NxElse(); NxAnd and = new NxAnd(); and.Append(new NxIsTrue("F627E0A5-828D-419b-9384-DA154071F2CB")); and.Append(new NxIsFalse("577DC098-650E-4cb4-913C-9EA94E278ACA")); nxElse.Append(and); string actual = nxElse.Create().OuterXml; StringBuilder sb = new StringBuilder(); sb.Append("<Else><And><IsTrue valueId=\"F627E0A5-828D-419b-9384-DA154071F2CB\" />"); sb.Append("<IsFalse valueId=\"577DC098-650E-4cb4-913C-9EA94E278ACA\" />"); sb.Append("</And></Else>"); string expected = sb.ToString(); Assert.AreEqual(expected, actual); }
public void WriteCondition(IPolicySet policySet, IPolicyObject parent, ICondition condition, ConditionLogic cdnlogic) { NxLogic logic = new NxLogic(); NxIf iF = new NxIf(); NxOperator conditionTest = null; if (condition.IsNegated) conditionTest = new NxNot(); else conditionTest = new NxAnd(); IDataElement lhs = condition.DataLeft; IDataElement rhs = condition.DataRight; WriteDataElement(lhs); WriteDataElement(rhs); string incrementId = Guid.NewGuid().ToString(); List<NxParameter> parameters = NxUtils.GetAttributes(condition); NxSet currentPolicy = m_policysets.PolicySets[0].CurrentPolicy; string lhsId = lhs.Identifier.ToString(); string rhsId = rhs.Identifier.ToString(); if (condition.Class == "IDataLengthComparer") { if ((lhs.Type == DataType.Object) || (NxUtils.IsArray(lhs.Type))) { lhsId = Guid.NewGuid().ToString(); foreach (NxPolicySet policyset in m_policysets.PolicySets) { policyset.CurrentPolicy.Append(new NxObjectLookup(lhsId, lhs.Identifier.ToString(), "Length")); } parameters.Add(new NxParameter("Properties", lhs.Identifier.ToString(), true)); } if ((rhs.Type == DataType.Object) || (NxUtils.IsArray(rhs.Type))) { rhsId = Guid.NewGuid().ToString(); foreach (NxPolicySet policyset in m_policysets.PolicySets) { policyset.CurrentPolicy.Append(new NxObjectLookup(rhsId, rhs.Identifier.ToString(), "Length")); } parameters.Add(new NxParameter("Properties", rhs.Identifier.ToString(), true)); } } conditionTest.Append(lhsId, rhsId, condition.Operator); NxDo dO = new NxDo(); foreach (NxPolicySet policyset in m_policysets.PolicySets) { policyset.AppendIncrementer(new NxIncrement(incrementId)); policyset.AppendIncrementer(new NxIncrementStep(incrementId)); } dO.Append(new NxIncrementStep(incrementId)); bool ignored = NxUtils.IsIgnored(condition); iF.Append(conditionTest); iF.Append(dO); logic.Append(iF); if (!ignored) { parameters.Add(new NxParameter("Name", condition)); dO.Append(new NxEvaluate("ConditionLineFired", new List<NxParameter>(parameters.ToArray()))); NxElse eLse = new NxElse(); eLse.Append(new NxEvaluate("ConditionLinePassed", new List<NxParameter>(parameters.ToArray()))); logic.Append(eLse); } foreach (NxPolicySet policyset in m_policysets.PolicySets) { policyset.Policies[policyset.Policies.Count - 1].AppendLogic(logic); policyset.Policies[policyset.Policies.Count - 1].AppendIncrementId(incrementId, parent.Identifier, cdnlogic); //IConditionGroup } }