コード例 #1
0
        public void Evaluate(EvaluationContext ctx, string SchemeID)
        {
            if (ctx.GetResult(this._policyId).HasDecision())
            {
                return;
            }

            try
            {
                if (BooleanDataType.True.Equals(this._target.Evaluate(ctx, this._policyId)))
                {
                    CombiningAlgorithmFactory.Evaluate(
                        this._ruleCombiningAlgId, ctx, this._policyLanguageModels.ToArray(), this._policyId);
                    this.EvaluateObligations(ctx, SchemeID);
                    return;
                }

                ctx.GetResult(this._policyId).Decision = Decision.NotApplicable;
                return;
            }
            catch (Indeterminate)
            {
                ctx.GetResult(this._policyId).Decision = Decision.Indeterminate;
            }
        }
コード例 #2
0
 public void Evaluate(EvaluationContext ctx, string SchemeID)
 {
     if (ctx.GetResult(this._policySetId).HasDecision())
     {
         return;
     }
     try
     {
         if (BooleanDataType.True.Equals(this._target.Evaluate(ctx, this._policySetId)))
         {
             CombiningAlgorithmFactory.Evaluate(
                 this._policyCombiningAlgId, ctx, this._policies.ToArray(), this._policySetId);
             return;
         }
     }
     catch (Indeterminate)
     {
         ctx.GetResult(this._policySetId).Decision = Decision.Indeterminate;
     }
 }