Example #1
0
 protected override void InnerInterpret(IRuleHandler handler)
 {
     if (handler.IsTypeAuthorized(this))
     {
         handler.Execute(this);
     }
 }
Example #2
0
 protected override void InnerInterpret(IRuleHandler handler)
 {
     if (handler.IsAuthorized <KSedalenRule>())
     {
         handler.Execute(this);
     }
 }
Example #3
0
        protected override void InnerInterpret(IRuleHandler handler)
        {
            if (handler.IsTypeAuthorized(this) && !this.AsAdditionHandled(handler))
            {
                //Добавляем IAsAdditionElement append реализацию
                //Приходится явно вызывать метод, т.к. функционал ExecContainer.InnerInterpret не используется
                var appended = AppendHandling(handler);

                Odes = GetChildElements <KOdiRule>(handler.Settings);

                AfterRules = GetChildElements <KAfterRule>(handler.Settings);

                foreach (var ode in Odes)
                {
                    ode.Interpret(handler);
                }

                //обрабатываем AfterRules только если это не расписание
                if (!(handler is ScheduleHandler))
                {
                    foreach (var afterRule in AfterRules)
                    {
                        afterRule.Interpret(handler);
                    }
                }

                //и сразу же удаляем appended IAsAdditionElements
                RemoveAppended(appended);

                handler.Execute(this);
            }
        }
Example #4
0
        protected override void InnerInterpret(IRuleHandler handler)
        {
            if (handler.IsAuthorized <KanonasRule>())
            {
                ///используем специальный обработчик для KKatavasiaRule
                var katavasiaContainer = GetChildElements <KKatavasiaRule>(handler);

                //используем специальный обработчик для KanonasItem,
                //чтобы создать список источников канонов на обработку
                var kanonasItemContainer = GetChildElements <KKanonasItemRule>(handler);

                if (kanonasItemContainer != null)
                {
                    CalculateOdesStructure(handler, kanonasItemContainer, (katavasiaContainer != null));
                }

                if (katavasiaContainer != null)
                {
                    CalculateKatavasiaStructure(handler, katavasiaContainer);
                }

                //находим KAfterRules
                var afterContainer = GetChildElements <KAfterRule>(handler);

                if (afterContainer != null)
                {
                    AfterRules = afterContainer.ChildElements.Cast <KAfterRule>();
                }

                handler.Execute(this);
            }
        }
 protected override void InnerInterpret(IRuleHandler handler)
 {
     if (handler.IsAuthorized <KanonasItemRuleBase>())
     {
         handler.Execute(this);
     }
 }
Example #6
0
        protected override void InnerInterpret(IRuleHandler handler)
        {
            if (handler.IsTypeAuthorized(this))
            {
                //находим переменную
                var query = SerializerRoot.QueryProcessor.Process(new TypiconVariableQuery(handler.Settings.TypiconVersionId, VariableName));

                //если найдена и у нее определено Значение
                if (query.Value is TypiconVariable var &&
                    !string.IsNullOrEmpty(var.Value))
                {
                    //десериализуем
                    var container = SerializerRoot.Container <ExecContainer>().Deserialize(var.Value);

                    if (container != null)
                    {
                        //находим все службы
                        foreach (var worship in container.GetChildElements <WorshipRule>(handler.Settings))
                        {
                            //обрабатываем их
                            handler.Execute(worship);
                        }
                    }
                }
            }
        }
Example #7
0
 protected override void InnerInterpret(IRuleHandler handler)
 {
     if (handler.IsAuthorized <TextHolder>())
     {
         handler.Execute(this);
     }
 }
Example #8
0
        protected override void InnerInterpret(IRuleHandler handler)
        {
            if (handler.IsAuthorized <KAfterRule>())
            {
                base.InnerInterpret(handler);

                handler.Execute(this);
            }
        }
Example #9
0
        protected override void InnerInterpret(IRuleHandler handler)
        {
            if (handler.IsTypeAuthorized(this) && !this.AsAdditionHandled(handler))
            {
                base.InnerInterpret(handler);

                handler.Execute(this);
            }
        }
Example #10
0
        protected override void InnerInterpret(IRuleHandler handler)
        {
            if (handler.IsAuthorized <Notice>())
            {
                handler.Execute(this);

                //base.Interpret(date, handler);
            }
        }
Example #11
0
        //public ItemText Name { get; set; }

        //public List<TextHolder> CalculatedElements { get; private set; }

        protected override void InnerInterpret(IRuleHandler handler)
        {
            if (handler.IsTypeAuthorized(this))
            {
                base.InnerInterpret(handler);
                //используем специальный обработчик для Ektenis,
                //чтобы создать вычисленный список элементов TextHolder
                //ExecContainer container = GetChildElements<TextHolder>(date, handler);

                //CalculatedElements = container?.ChildElements.Cast<TextHolder>().ToList();

                handler.Execute(this);
            }
        }
Example #12
0
        protected override void InnerInterpret(IRuleHandler handler)
        {
            InterpretChildDateExp(handler);

            DateToReplaceCalculated = handler.Settings.Date;

            handler.Execute(this);

            DateTime date = handler.Settings.Date;

            handler.Settings.Date = MoveDateCalculated;

            ModifyReplacedDay?.Interpret(handler);
            //возвращаем на всякий случай обратно дату
            handler.Settings.Date = date;
        }
        protected override void InnerInterpret(IRuleHandler handler)
        {
            if (IsAuthorized(handler))
            {
                //используем специальный обработчик для YmnosStructureRule,
                //чтобы создать список источников стихир на обработку
                var container = GetChildElements <TChildElement>(handler.Settings);

                if (container != null)
                {
                    CalculateStructure(handler.Settings, container);
                }

                handler.Execute(this);
            }
        }
Example #14
0
        protected override void InnerInterpret(IRuleHandler handler)
        {
            if (handler.IsTypeAuthorized(this) && !this.AsAdditionHandled(handler))
            {
                //используем специальный обработчик для KKatavasiaRule
                var katavasia = GetChildElements <KKatavasiaRule>(handler.Settings);

                //используем специальный обработчик для KanonasItem,
                //чтобы создать список источников канонов на обработку
                var kanones = GetChildElements <KKanonasItemRule>(handler.Settings);

                _kanonesCalc.Calculate(handler.Settings, kanones, katavasia, (Parent as KanonasRule).IsOrthros);

                handler.Execute(this);
            }
        }
Example #15
0
        protected override void InnerInterpret(IRuleHandler handler)
        {
            if (IsValid && handler.IsAuthorized <ModifyDay>())
            {
                InterpretChildDateExp(handler);

                handler.Execute(this);

                //обработка ModifyReplacedDay

                DateTime date = handler.Settings.Date;

                handler.Settings.Date = MoveDateCalculated;

                ModifyReplacedDay?.Interpret(handler);
                //возвращаем на всякий случай обратно дату
                handler.Settings.Date = date;
            }
        }