当前位置: 首页>>代码示例>>C#>>正文


C# RuleContext.Abort方法代码示例

本文整理汇总了C#中RuleContext.Abort方法的典型用法代码示例。如果您正苦于以下问题:C# RuleContext.Abort方法的具体用法?C# RuleContext.Abort怎么用?C# RuleContext.Abort使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在RuleContext的用法示例。


在下文中一共展示了RuleContext.Abort方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Process

        public override void Process(StartTrackingArgs args)
        {
            if (!Tracker.IsActive || String.IsNullOrEmpty(RulesItemId))
                return;

            VisitorDataSet.VisitsRow currentVisit = Tracker.Visitor.GetCurrentVisit();

            if (currentVisit == null || currentVisit.HasGeoIpData)
                return;

            Item rulesItem = Sitecore.Context.Database.GetItem(RulesItemId);

            if (rulesItem == null)
                return;

            RuleList<RuleContext> ruleList = RuleFactory.GetRules<RuleContext>(rulesItem, "Rule");

            if (ruleList == null)
                return;

            RuleContext ruleContext = new RuleContext();

            if (SatisfiesConditions(ruleList, ruleContext))
                currentVisit.UpdateGeoIpData();

            ruleContext.Abort();
        }
开发者ID:TwentyGotoTen,项目名称:DeferredGeoIPLookup,代码行数:27,代码来源:UpdateGeoIPDataProcessor.cs

示例2: ValidateRule

        public static bool ValidateRule(RuleList<RuleContext> rules, Item ruleItem, Item checkItem)
        {
            var ruleContext = new RuleContext { Item = checkItem };
            var result = false;
            using (
                new LongRunningOperationWatcher(Settings.Profiling.RenderFieldThreshold, "Long running rule set: {0}",
                    new string[1]
                    {
                        ruleItem.Name ?? string.Empty
                    }))
            {
                foreach (var rule in rules.Rules)
                {
                    if (rule.Condition == null)
                        continue;

                    var stack = new RuleStack();

                    try
                    {
                        rule.Condition.Evaluate(ruleContext, stack);
                    }
                    catch (Exception ex)
                    {
                        Log.Error(
                            string.Format("Evaluation of condition failed. Rule item ID: {0}, condition item ID: {1}",
                                rule.UniqueId != (ID)null ? rule.UniqueId.ToString() : "Unknown",
                                rule.Condition.UniqueId != ID.Null.ToString()
                                    ? rule.Condition.UniqueId
                                    : "Unknown"), ex, typeof(RuleProcessor));
                        ruleContext.Abort();
                    }

                    if (ruleContext.IsAborted)
                        break;

                    if (stack.Count != 0 && (bool)stack.Pop())
                        result = true;
                    else
                    {
                        result = false;
                        break;
                    }
                }
            }

            return result;
        }
开发者ID:peplau,项目名称:sitecore-rule-processor,代码行数:48,代码来源:RuleProcessor.cs


注:本文中的RuleContext.Abort方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。