Example #1
0
        public void Prosomoion_Self_Serialize()
        {
            string xmlString = @"<prosomoion self=""true""/>";

            TypiconSerializer ser     = new TypiconSerializer();
            Prosomoion        element = ser.Deserialize <Prosomoion>(xmlString);

            Assert.Pass(ser.Serialize(element));
        }
Example #2
0
        public void Prosomoion_Deserialize()
        {
            string xmlString = @"<prosomoion>
                                    <item language=""cs-ru"">Все́ отло́жше</item>
                                  </prosomoion>";

            TypiconSerializer ser     = new TypiconSerializer();
            Prosomoion        element = ser.Deserialize <Prosomoion>(xmlString);

            Assert.IsFalse(element.Self);
            Assert.IsFalse(element.IsEmpty);
        }
Example #3
0
        public static void AppendViewModel(this Prosomoion prosomoion, int typiconVersionId,
                                           IRuleSerializerRoot serializer, OutputSectionModelCollection viewModel, int?ihos = null)
        {
            ItemText ihosItemText       = null;
            ItemText prosomoionItemText = null;

            if (ihos != null)
            {
                //текст "Глас"
                ihosItemText = serializer.GetCommonRuleItemTextValue(typiconVersionId, CommonRuleConstants.IhosText);
                ihosItemText.ReplaceForEach("[ihos]", ihos.Value);
            }
            else
            {
                ihosItemText = new ItemText();
            }

            //самоподобен?
            if (prosomoion?.Self == true)
            {
                prosomoionItemText = serializer.GetCommonRuleItemTextValue(typiconVersionId, CommonRuleConstants.SelfText);
            }
            //если подобен
            else if (prosomoion?.IsEmpty == false)
            {
                prosomoionItemText = serializer.GetCommonRuleItemTextValue(typiconVersionId, CommonRuleConstants.ProsomoionText);
                prosomoionItemText.ReplaceForEach("[name]", prosomoion);
            }
            else
            {
                prosomoionItemText = new ItemText();
            }

            //соединяем воедино
            ihosItemText.Merge(prosomoionItemText);

            viewModel.Add(OutputSectionFactory.Create(TextHolderKind.Text,
                                                      new List <ItemTextNoted> {
                new ItemTextNoted(ihosItemText)
            }));
        }
        public static void AppendViewModel(this Prosomoion prosomoion, IRuleHandler handler,
                                           IRuleSerializerRoot serializer, ElementViewModel viewModel, int?ihos = null)
        {
            TypiconEntity            typ = handler.Settings.Rule.Owner;
            CommonRuleServiceRequest req = new CommonRuleServiceRequest()
            {
                RuleSerializer = serializer
            };

            string str = "";

            if (ihos != null)
            {
                //текст "Глас"
                req.Key = CommonRuleConstants.IhosText;
                string ihosString = handler.Settings.Language.IntConverter.ToString((int)ihos);
                str += $"{typ.GetCommonRuleTextValue(req, handler.Settings.Language.Name)} {ihosString}. ";
            }

            //самоподобен?
            if (prosomoion?.Self == true)
            {
                req.Key = CommonRuleConstants.SelfText;
                str    += typ.GetCommonRuleTextValue(req, handler.Settings.Language.Name);
            }
            //если подобен
            else if (prosomoion?.IsEmpty == false)
            {
                req.Key = CommonRuleConstants.ProsomoionText;
                string p = typ.GetCommonRuleTextValue(req, handler.Settings.Language.Name);

                str += $"{p}: \"{ prosomoion[handler.Settings.Language.Name] }\"";
            }

            viewModel.Add(ViewModelItemFactory.Create(TextHolderKind.Text,
                                                      new List <ParagraphViewModel> {
                ParagraphVMFactory.Create(str)
            }));
        }