예제 #1
0
 public NxPolicySet(IPolicySet policySet, ChannelType channelType)
 {
     m_ChannelType = channelType;
     NxSet policies = new NxSet("Policies");            
     List<NxParameter> parameters = NxUtils.GetAttributes(policySet);
     parameters.Add(new NxParameter("Name", policySet));            
     policies.Append(new NxEvaluate("BeforePolicy", parameters));
     policies.Append(new NxInvokeSet("C1C0D5EA-5B82-4607-AE41-D52739AA6AB1"));
     policies.Append(new NxEvaluate("AfterPolicy", parameters));
     AppendSet(policies);
 }
예제 #2
0
 public NxRoutingSet(IPolicyChannel channel, NxObjectWriter objectWriter, IResourceManager resourceManager)
 {
     m_objectWriter = objectWriter;
     m_policyChannel = channel;
     m_routingId = channel.Routing.Identifier.ToString();
     m_routingSet = new NxSet(m_routingId);
     m_routingSet.Append(new NxComment("Online routing"));
     m_resourceManager = resourceManager;
     InitialiseObjectLookups();
 }
예제 #3
0
        public void WritePolicy(IPolicySet policySet, ICataloguePolicy cataloguePolicy)
        {
            NxParameter catalogueNameParam = new NxParameter("Name", cataloguePolicy);
            List<NxParameter> beforeRuleParams = NxUtils.GetAttributes(cataloguePolicy as IPolicy);
            beforeRuleParams.Add(catalogueNameParam);
            NxEvaluate b4Policy = new NxEvaluate("BeforeRule", beforeRuleParams);
            NxInvokeSet invokeSet = new NxInvokeSet(cataloguePolicy.Identifier.ToString());
            NxEvaluate afterPolicy = new NxEvaluate("AfterRule", catalogueNameParam);

            foreach (NxPolicySet policyset in m_policysets.PolicySets)
            {
                NxSet rulesSet = policyset.GetPolicy(new Guid("{C1C0D5EA-5B82-4607-AE41-D52739AA6AB1}"));
                if (rulesSet == null)
                {
                    rulesSet = new NxSet("C1C0D5EA-5B82-4607-AE41-D52739AA6AB1");
                    rulesSet.Append(b4Policy);
                    rulesSet.Append(invokeSet);
                    rulesSet.Append(afterPolicy);
                    policyset.Policies.Add(rulesSet);
                }
                else
                {
                    rulesSet.Append(b4Policy);
                    rulesSet.Append(invokeSet);
                    rulesSet.Append(afterPolicy);
                }
                policyset.Policies.Add(new NxSet(cataloguePolicy.Identifier.ToString()));
            }
        }