Ejemplo n.º 1
0
        public static void ExecuteRule(SiteDb sitedb, KScript.k kcontext, IFrontEvent theevent, Kooboo.Sites.Models.IFElseRule rule)
        {
            if (rule.Do != null && rule.Do.Count() > 0)
            {
                foreach (var item in rule.Do)
                {
                    var code = sitedb.Code.Get(item.CodeId);
                    if (code != null && !string.IsNullOrWhiteSpace(code.Body))
                    {
                        kcontext.config = new KDictionary(CopySetting(item.Setting));

                        var outputstring = Kooboo.Sites.Scripting.Manager.ExecuteCode(kcontext.RenderContext, code.Body, code.Id);

                        if (!string.IsNullOrEmpty(outputstring))
                        {
                            kcontext.RenderContext.Response.AppendString(outputstring);
                        }
                        kcontext.config = null;
                    }
                }
            }

            if (rule.IF != null && rule.IF.Count() > 0)
            {
                var check = EvaluteCondition(theevent, rule.IF);

                if (check)
                {
                    if (rule.Then != null && rule.Then.Count() > 0)
                    {
                        foreach (var item in rule.Then)
                        {
                            ExecuteRule(sitedb, kcontext, theevent, item);
                        }
                    }
                }
                else
                {
                    if (rule.Else != null && rule.Else.Count() > 0)
                    {
                        foreach (var item in rule.Else)
                        {
                            ExecuteRule(sitedb, kcontext, theevent, item);
                        }
                    }
                }
            }

            else if (rule.Then != null && rule.Then.Count > 0)
            {
                foreach (var item in rule.Then)
                {
                    ExecuteRule(sitedb, kcontext, theevent, item);
                }
            }
        }
Ejemplo n.º 2
0
        public static void ExecuteRule(SiteDb sitedb, Kooboo.Sites.Scripting.k kcontext, IFrontEvent theevent, Kooboo.Sites.Models.IFElseRule rule)
        {
            if (rule.Do != null && rule.Do.Count() > 0)
            {
                foreach (var item in rule.Do)
                {
                    var code = sitedb.Code.Get(item.CodeId);
                    if (code != null && !string.IsNullOrWhiteSpace(code.Body))
                    {
                        kcontext.config = CopySetting(item.Setting);

                        Kooboo.Sites.Scripting.Manager.ExecuteCode(kcontext.RenderContext, code.Body, code.Id);
                        //TODO.... Get the debugger to work...
                        //engine.Execute(code.Body);

                        kcontext.config = null;
                    }
                }
            }

            if (rule.IF != null && rule.IF.Count() > 0)
            {
                var check = EvaluteCondition(theevent, rule.IF);

                if (check)
                {
                    if (rule.Then != null && rule.Then.Count() > 0)
                    {
                        foreach (var item in rule.Then)
                        {
                            ExecuteRule(sitedb, kcontext, theevent, item);
                        }
                    }
                }
                else
                {
                    if (rule.Else != null && rule.Else.Count() > 0)
                    {
                        foreach (var item in rule.Else)
                        {
                            ExecuteRule(sitedb, kcontext, theevent, item);
                        }
                    }
                }
            }

            else if (rule.Then != null && rule.Then.Count > 0)
            {
                foreach (var item in rule.Then)
                {
                    ExecuteRule(sitedb, kcontext, theevent, item);
                }
            }
        }