public static void AppendViewModel(this ItemText text, IRuleHandler handler, ElementViewModel viewModel)
 {
     if (text?.IsEmpty == false)
     {
         viewModel.Add(ViewModelItemFactory.Create(TextHolderKind.Text,
                                                   new List <ParagraphViewModel> {
             ParagraphVMFactory.Create(text, handler.Settings.Language.Name)
         }));
     }
 }
        private static void AppendYmnis(List <Ymnos> ymnis, IRuleHandler handler,
                                        IRuleSerializerRoot serializer, ElementViewModel viewModel)
        {
            var text = GetStringValues(handler, serializer);

            foreach (Ymnos ymnos in ymnis)
            {
                //добавляем стих и песнопение как отдельные объекты
                foreach (ItemText stihos in ymnos.Stihoi)
                {
                    viewModel.Add(ViewModelItemFactory.Create(TextHolderKind.Stihos, text.StihosText,
                                                              new List <ParagraphViewModel> {
                        ParagraphVMFactory.Create(stihos, handler.Settings.Language.Name)
                    }));
                }

                viewModel.Add(ViewModelItemFactory.Create(TextHolderKind.Choir, text.ChoirText,
                                                          new List <ParagraphViewModel> {
                    ParagraphVMFactory.Create(ymnos.Text, handler.Settings.Language.Name)
                }));
            }
        }
        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)
            }));
        }