protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            KontakionRule obj = req.Element as KontakionRule;

            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.KontakionPlaceAttrName];

            if (Enum.TryParse(attr?.Value, true, out KontakionPlace place))
            {
                obj.Place = place;
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.YmnosRuleKindAttrName];
            if (Enum.TryParse(attr?.Value, true, out YmnosRuleKind kind))
            {
                obj.Kind = kind;
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.KontakionShowIkosAttrName];
            if (bool.TryParse(attr?.Value, out bool val))
            {
                obj.ShowIkos = val;
            }
        }
Example #2
0
        protected override void FillObject(FillObjectRequest req)
        {
            YmnosCustomRule element = req.Element as YmnosCustomRule;

            if (req.Descriptor.Element.FirstChild is XmlNode node)
            {
                switch (node.Name)
                {
                case RuleConstants.YmnosCustomRuleGroupNode:
                {
                    element.Kind    = YmnosRuleKind.Ymnos;
                    element.Element = Deserialize(node.OuterXml, RuleConstants.YmnosCustomRuleGroupNode);
                }
                break;

                case RuleConstants.YmnosCustomRuleDoxastichonNode:
                {
                    element.Kind    = YmnosRuleKind.Doxastichon;
                    element.Element = Deserialize(node.OuterXml, RuleConstants.YmnosCustomRuleDoxastichonNode);
                }
                break;

                case RuleConstants.YmnosCustomRuleTheotokionNode:
                {
                    element.Kind    = YmnosRuleKind.Theotokion;
                    element.Element = Deserialize(node.OuterXml, RuleConstants.YmnosCustomRuleTheotokionNode);
                }
                break;
                }
            }

            YmnosGroup Deserialize(string xml, string rootElement) => SerializerRoot.TypiconSerializer.Deserialize <YmnosGroup>(xml, rootElement);
        }
        protected override void FillObject(FillObjectRequest req)
        {
            var obj = req.Element as TextHolder;

            if (Enum.TryParse(req.Descriptor.Element.Name, true, out TextHolderKind kind))
            {
                obj.Kind = kind;
            }

            var attr = req.Descriptor.Element.Attributes?[RuleConstants.TextHolderMarkAttr];

            if (Enum.TryParse(attr?.Value, true, out TextHolderMark mark))
            {
                obj.Mark = mark;
            }

            foreach (XmlNode childNode in req.Descriptor.Element.ChildNodes)
            {
                if (childNode.Name == RuleConstants.TextHolderPapragraphNode)
                {
                    var item = SerializerRoot.TypiconSerializer.Deserialize <ItemTextNoted>(childNode.OuterXml, RuleConstants.TextHolderPapragraphNode);
                    //new ItemTextNoted(childNode.OuterXml, RuleConstants.TextHolderPapragraphNode);

                    obj.Paragraphs.Add(item);
                }
            }
        }
Example #4
0
        protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            YmnosRule obj = req.Element as YmnosRule;

            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.YmnosRulePlaceAttrName];

            if (Enum.TryParse(attr?.Value, true, out PlaceYmnosSource place))
            {
                obj.Place = place;
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.YmnosRuleKindAttrName];
            if (Enum.TryParse(attr?.Value, true, out YmnosRuleKind kind))
            {
                obj.Kind = kind;
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.YmnosRuleCountAttrName];
            if (int.TryParse(attr?.Value, out int intValue))
            {
                obj.Count = intValue;
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.YmnosRuleStartFromAttrName];
            if (int.TryParse(attr?.Value, out intValue))
            {
                obj.StartFrom = intValue;
            }
        }
Example #5
0
        protected override void FillObject(FillObjectRequest req)
        {
            var sedalenRule = req.Element as SedalenRule;

            var node = req.Descriptor.Element.SelectSingleNode(RuleConstants.SedalenRuleHeaderNode);

            if (node != null)
            {
                sedalenRule.Header = SerializerRoot.TypiconSerializer.Deserialize <ItemTextHeader>(node.OuterXml, RuleConstants.SedalenRuleHeaderNode);
            }

            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.TotalCountAttribute];

            if (int.TryParse(attr?.Value, out int count))
            {
                sedalenRule.TotalYmnosCount = count;
            }

            node = req.Descriptor.Element.SelectSingleNode(RuleConstants.SedalenRuleDefinitionNode);
            if (node?.HasChildNodes != null)
            {
                var children = node.ChildNodes.DeserializeChildren(SerializerRoot, req.Parent);

                sedalenRule.ChildElements.AddRange(children);
            }
        }
Example #6
0
        protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            //IAsAdditionElement пропускаем
            //(req.Element as RootContainer).FillElement(req.Descriptor.Element);
        }
Example #7
0
        protected override void FillObject(FillObjectRequest req)
        {
            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.DayOfWeekAttrName];

            if (attr != null)
            {
                if (DayOfWeekParser.TryParse(attr.Value, out DayOfWeek? dayOfWeek))
                {
                    (req.Element as GetClosestDay).DayOfWeek = dayOfWeek.Value;
                }
                else
                {
                    //error
                }
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.WeekCountAttrName];

            if (int.TryParse(attr?.Value, out int count))
            {
                (req.Element as GetClosestDay).WeekCount = count;
            }

            if (req.Descriptor.Element.HasChildNodes)
            {
                (req.Element as GetClosestDay).ChildDateExp = SerializerRoot.Container <DateExpression>()
                                                              .Deserialize(new XmlDescriptor()
                {
                    Element = req.Descriptor.Element.FirstChild
                }, req.Parent);
            }
        }
Example #8
0
        protected override void FillObject(FillObjectRequest req)
        {
            XmlNode valuesNode = req.Descriptor.Element.SelectSingleNode(RuleConstants.ValuesNodeName);

            if (valuesNode?.HasChildNodes == true)
            {
                foreach (XmlNode valueNode in valuesNode.ChildNodes)
                {
                    RuleExpression valueElement = SerializerRoot.Container <RuleExpression>()
                                                  .Deserialize(new XmlDescriptor()
                    {
                        Element = valueNode
                    }, req.Parent);

                    (req.Element as Case).ValuesElements.Add(valueElement);
                }
            }

            XmlNode actionNode = req.Descriptor.Element.SelectSingleNode(RuleConstants.ActionNodeName);

            if (actionNode != null)
            {
                (req.Element as Case).ActionElement = SerializerRoot.Container <ExecContainer>()
                                                      .Deserialize(new XmlDescriptor()
                {
                    Element = actionNode
                }, req.Parent);
            }
        }
        protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            ExapostilarionItemRule obj = req.Element as ExapostilarionItemRule;

            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.ExapostilarionItemRulePlaceAttrName];

            if (Enum.TryParse(attr?.Value, true, out ExapostilarionItemPlace place))
            {
                obj.Place = place;
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.ExapostilarionItemRuleKindAttrName];
            if (Enum.TryParse(attr?.Value, true, out ExapostilarionItemKind kind))
            {
                obj.Kind = kind;
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.ExapostilarionItemRuleCountAttrName];
            if (int.TryParse(attr?.Value, out int intValue))
            {
                obj.Count = intValue;
            }
        }
Example #10
0
 protected override void FillObject(FillObjectRequest req)
 {
     if (req.Descriptor.Element.HasChildNodes)
     {
         (req.Element as DaysFromEaster).ChildExpression = SerializerRoot.Container<DateExpression>()
             .Deserialize(new XmlDescriptor() { Element = req.Descriptor.Element.FirstChild }, req.Parent);
     }
 }
        protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            if (Enum.TryParse(req.Descriptor.GetElementName(), true, out WorshipSequenceKind kind))
            {
                (req.Element as WorshipSequence).Kind = kind;
            }
        }
 protected override void FillObject(FillObjectRequest req)
 {
     if (req.Descriptor.Element.HasChildNodes)// && node.FirstChild.Name == RuleConstants.YmnosRuleNode)
     {
         (req.Element as IsExists).ChildElement = SerializerRoot.Container <RuleExecutable, ICalcStructureElement>()
                                                  .Deserialize(new XmlDescriptor()
         {
             Element = req.Descriptor.Element.FirstChild
         }, req.Parent) as ICalcStructureElement;
     }
 }
        protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.KindAttrName];

            if (Enum.TryParse(attr?.Value, true, out KindOfReplacedDay value))
            {
                (req.Element as ModifyReplacedDay).Kind = value;
            }
        }
        protected override void FillObject(FillObjectRequest req)
        {
            var node = req.Descriptor.Element;

            if (node.HasChildNodes)
            {
                var children = node.ChildNodes.DeserializeChildren(SerializerRoot, req.Parent);

                (req.Element as ExecContainer).ChildElements.AddRange(children);
            }
        }
Example #15
0
        protected override void FillObject(FillObjectRequest req)
        {
            var obj = req.Element as SourceHavingRuleBase;

            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.YmnosRuleSourceAttrName];

            if (Enum.TryParse(attr?.Value, true, out YmnosSource source))
            {
                obj.Source = source;
            }
        }
        protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.ShowPsalmAttribute];

            if (bool.TryParse(attr?.Value, out bool showPsalm))
            {
                (req.Element as KekragariaRule).ShowPsalm = showPsalm;
            }
        }
Example #17
0
 protected override void FillObject(FillObjectRequest req)
 {
     if (int.TryParse(req.Descriptor.Element.InnerText, out int value))
     {
         (req.Element as Int).ValueExpression = value;
     }
     else
     {
         //Ошибка
     }
 }
Example #18
0
        protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.IsOrthrosAttribute];

            if (bool.TryParse(attr?.Value, out bool isOrthros))
            {
                (req.Element as KanonasRule).IsOrthros = isOrthros;
            }

            (req.Element as IAsAdditionElement).FillIAsAdditionElement(req.Descriptor.Element);
        }
Example #19
0
        protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            var attr = req.Descriptor.Element.Attributes[RuleConstants.KOdiRuleNumberAttrName];

            if (int.TryParse(attr?.Value, out int intValue))
            {
                (req.Element as KOdiRule).Number = intValue;
            }

            (req.Element as KOdiRule).FillIAsAdditionElement(req.Descriptor.Element);
        }
        protected override void FillObject(FillObjectRequest req)
        {
            foreach (XmlNode childNode in req.Descriptor.Element.ChildNodes)
            {
                var exp = SerializerRoot.Container <RuleExpression>()
                          .Deserialize(new XmlDescriptor()
                {
                    Element = childNode
                }, req.Parent);

                (req.Element as LogicalExpression).ChildElements.Add(exp);
            }
        }
        //protected override IRuleElement CreateObject(CreateObjectRequest req) => new KontakionRule(req.Descriptor.GetElementName());

        protected override void FillObject(FillObjectRequest req)
        {
            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.KanonasSourceAttrName];

            if (Enum.TryParse(attr?.Value, true, out KanonasSource source))
            {
                (req.Element as KanonasItemRuleBase).Source = source;
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.KanonasKindAttrName];
            if (Enum.TryParse(attr?.Value, true, out KanonasKind kanonas))
            {
                (req.Element as KanonasItemRuleBase).Kanonas = kanonas;
            }
        }
Example #22
0
        protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            //if (Enum.TryParse(req.Descriptor.GetElementName(), true, out YmnosStructureKind kind))
            //{
            //    (req.Element as YmnosStructureRule).Kind = kind;
            //}

            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.TotalCountAttribute];

            if (int.TryParse(attr?.Value, out int count))
            {
                (req.Element as YmnosStructureRule).TotalYmnosCount = count;
            }
        }
        protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.KanonasCountAttrName];

            if (int.TryParse(attr?.Value, out int intValue))
            {
                (req.Element as KKanonasItemRule).Count = intValue;
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.KanonasMartyrionAttrName];
            (req.Element as KKanonasItemRule).UseMartyrion = bool.TryParse(attr?.Value, out bool value) ? value : true;

            attr = req.Descriptor.Element.Attributes[RuleConstants.KanonasIrmosCountAttrName];
            (req.Element as KKanonasItemRule).IrmosCount = int.TryParse(attr?.Value, out int i) ? i : 0;
        }
        protected override void FillObject(FillObjectRequest req)
        {
            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.GetDayOfWeekAttrName];

            if (attr != null && DayOfWeekParser.TryParse(attr.Value, out DayOfWeek? dayOfWeek))
            {
                (req.Element as GetDayOfWeek).DayOfWeek = dayOfWeek;
            }

            if (req.Descriptor.Element.HasChildNodes)
            {
                (req.Element as GetDayOfWeek).ChildDateExp = SerializerRoot.Container <DateExpression>()
                                                             .Deserialize(new XmlDescriptor()
                {
                    Element = req.Descriptor.Element.FirstChild
                }, req.Parent);
            }
        }
        protected override void FillObject(FillObjectRequest req)
        {
            //ищем expression
            XmlNode expressionNode = req.Descriptor.Element.SelectSingleNode(RuleConstants.ExpressionNodeName);

            if (expressionNode?.HasChildNodes == true)
            {
                (req.Element as Switch).Expression = SerializerRoot.Container <RuleExpression>()
                                                     .Deserialize(new XmlDescriptor()
                {
                    Element = expressionNode.FirstChild
                }, req.Parent);
            }

            //ищем элементы case
            XmlNodeList casesList = req.Descriptor.Element.SelectNodes(RuleConstants.CaseNodeName);

            if (casesList != null)
            {
                foreach (XmlNode caseNode in casesList)
                {
                    Case caseElement = SerializerRoot.Container <Case>().Deserialize(new XmlDescriptor()
                    {
                        Element = caseNode
                    }, req.Parent);
                    (req.Element as Switch).CaseElements.Add(caseElement);
                }
            }

            //ищем default
            XmlNode defaultNode = req.Descriptor.Element.SelectSingleNode(RuleConstants.DefaultNodeName);

            if (defaultNode != null)
            {
                (req.Element as Switch).Default = SerializerRoot.Container <ExecContainer>()
                                                  .Deserialize(new XmlDescriptor()
                {
                    Element = defaultNode
                }, req.Parent);
            }
        }
        protected override void FillObject(FillObjectRequest req)
        {
            base.FillObject(req);

            var obj = req.Element as TheotokionAppRule;

            XmlAttribute attr = req.Descriptor.Element.Attributes[RuleConstants.TheotokionAppRulePlaceAttrName];

            if (Enum.TryParse(attr?.Value, true, out TheotokionAppPlace place))
            {
                obj.Place = place;
            }

            if (req.Descriptor.Element.SelectSingleNode(RuleConstants.YmnosRuleNode) is XmlNode ymnosNode)
            {
                obj.ReferenceYmnos = SerializerRoot.Container <YmnosRule>()
                                     .Deserialize(new XmlDescriptor()
                {
                    Element = ymnosNode
                }, req.Parent);
            }
        }
        protected override void FillObject(FillObjectRequest req)
        {
            var          psalmRule = req.Element as PsalmRule;
            XmlAttribute attr      = req.Descriptor.Element.Attributes[RuleConstants.PsalmRuleNumberAttr];

            if (int.TryParse(attr?.Value, out int intValue))
            {
                psalmRule.Number = intValue;
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.PsalmRuleStartAttr];
            if (int.TryParse(attr?.Value, out intValue))
            {
                psalmRule.StartStihos = intValue;
            }

            attr = req.Descriptor.Element.Attributes[RuleConstants.PsalmRuleEndAttr];
            if (int.TryParse(attr?.Value, out intValue))
            {
                psalmRule.EndStihos = intValue;
            }
        }
Example #28
0
        protected override void FillObject(FillObjectRequest req)
        {
            var obj = req.Element as WorshipRule;

            var attr = req.Descriptor.Element.Attributes[RuleConstants.WorshipRuleIdAttrName];

            obj.Id = (attr != null) ? attr.Value : string.Empty;

            attr     = req.Descriptor.Element.Attributes[RuleConstants.WorshipRuleTimeAttrName];
            obj.Time = new VariableItemTime((attr != null) ? attr.Value : string.Empty);

            obj.Name = req.Descriptor.Element
                       .GetItemTextStyled(SerializerRoot.TypiconSerializer, RuleConstants.WorshipRuleNameNode);

            obj.AdditionalName = req.Descriptor.Element
                                 .GetItemTextStyled(SerializerRoot.TypiconSerializer, RuleConstants.WorshipRuleAdditionalNameNode);

            attr = req.Descriptor.Element.Attributes[RuleConstants.WorshipRuleModeAttrName];
            if (Enum.TryParse(attr?.Value, true, out WorshipMode source))
            {
                obj.Mode = source;
            }

            //sequence
            var sequenceNode = req.Descriptor.Element.SelectSingleNode(RuleConstants.WorshipRuleSequenceNode);

            if (sequenceNode != null)
            {
                obj.Sequence = SerializerRoot.Container <ExecContainer>()
                               .Deserialize(new XmlDescriptor()
                {
                    Element = sequenceNode
                }, req.Parent);
            }

            obj.FillIAsAdditionElement(req.Descriptor.Element);
        }
Example #29
0
        protected override void FillObject(FillObjectRequest req)
        {
            //expression
            XmlNode elementNode = req.Descriptor.Element.SelectSingleNode(RuleConstants.ExpressionIfNodeName);

            if (elementNode?.HasChildNodes == true)
            {
                (req.Element as If).Expression = SerializerRoot.Container <BooleanExpression>()
                                                 .Deserialize(new XmlDescriptor()
                {
                    Element = elementNode.FirstChild
                }, req.Parent);
            }

            //ищем then
            elementNode = req.Descriptor.Element.SelectSingleNode(RuleConstants.ThenNodeName);
            if (elementNode != null)
            {
                (req.Element as If).ThenElement = SerializerRoot.Container <ExecContainer>()
                                                  .Deserialize(new XmlDescriptor()
                {
                    Element = elementNode
                }, req.Parent);
            }

            //ищем else
            elementNode = req.Descriptor.Element.SelectSingleNode(RuleConstants.ElseNodeName);
            if (elementNode != null)
            {
                (req.Element as If).ElseElement = SerializerRoot.Container <ExecContainer>()
                                                  .Deserialize(new XmlDescriptor()
                {
                    Element = elementNode
                }, req.Parent);
            }
        }
 protected override void FillObject(FillObjectRequest req)
 {
 }