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; } }
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); } } }
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; } }
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); } }
protected override void FillObject(FillObjectRequest req) { base.FillObject(req); //IAsAdditionElement пропускаем //(req.Element as RootContainer).FillElement(req.Descriptor.Element); }
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); } }
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; } }
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); } }
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; } }
protected override void FillObject(FillObjectRequest req) { if (int.TryParse(req.Descriptor.Element.InnerText, out int value)) { (req.Element as Int).ValueExpression = value; } else { //Ошибка } }
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); }
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; } }
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; } }
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); }
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) { }