private void AppendTroparion(Ymnos troparion) { var view = ViewModelItemFactory.Create(troparion, handler, serializer); appendModelAction(new ElementViewModel() { view }); }
private void AppendHeader(CreateViewModelRequest <KanonasRule> req) { TextHolder header = GetHeaders(req)[0]; req.AppendModelAction(new ElementViewModel() { ViewModelItemFactory.Create(header, req.Handler, Serializer) }); }
protected virtual void ConstructWithCommonRule(CreateViewModelRequest <YmnosStructureRule> req, string key) { List <RuleElement> children = req.Handler.Settings.Rule.Owner.GetCommonRuleChildren( new CommonRuleServiceRequest() { Key = key, RuleSerializer = Serializer }).ToList(); if (req.Element.Structure.Groups.Count > 0) { //заполняем header - вставляем номер гласа ItemText header = (children[0] as TextHolder).Paragraphs[0]; string headerText = header.StringExpression; header.StringExpression = headerText.Replace("[ihos]", req.Handler.Settings.Language.IntConverter.ToString(req.Element.Structure.Groups[0].Ihos)); //а теперь отсчитываем от последней стихиры и добавляем к ней стих из псалма //сам стих удаляем из псалма TextHolder psalm = new TextHolder(children[2] as TextHolder); for (int i = req.Element.Structure.Groups.Count - 1; i >= 0; i--) { YmnosGroup group = req.Element.Structure.Groups[i]; for (int n = group.Ymnis.Count - 1; n >= 0; n--) { Ymnos ymnos = group.Ymnis[n]; ItemTextNoted stihos = psalm.Paragraphs.Last(); ymnos.Stihoi.Add(stihos); psalm.Paragraphs.Remove(stihos); } } } //теперь вставляем шапку AppendItem(children[0] as TextHolder); AppendItem(children[1] as TextHolder); //вставляем псалмы if ((req.Element as KekragariaRule).ShowPsalm) { AppendItem(children[2] as TextHolder); } void AppendItem(TextHolder textHolder) { req.AppendModelAction(new ElementViewModel() { ViewModelItemFactory.Create(textHolder, req.Handler, Serializer) }); } }
/// <summary> /// Добавляет "Хвалим, благословим..." /// </summary> private void AppendStihosOdi8(CreateViewModelRequest <KanonasRule> req) { TextHolder odi8TextHolder = GetHeaders(req)[5]; var viewModel = ViewModelItemFactory.Create(odi8TextHolder, req.Handler, Serializer); req.AppendModelAction(new ElementViewModel() { viewModel }); }
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 void AppendText(CreateViewModelRequest <PsalmRule> req, BookReading psalmReading) { //List<string> paragraphs = psalmReading.Text.Select(c => c[req.Handler.Settings.Language.Name]).ToList(); var paragraphs = ParagraphVMFactory.CreateList(psalmReading.Text, req.Handler.Settings.Language.Name); req.AppendModelAction(new ElementViewModel() { ViewModelItemFactory.Create(TextHolderKind.Lector, paragraphs) }); }
private void AppenOdiHeader(CreateViewModelRequest <KanonasRule> req, int i) { TextHolder odiTextHolder = GetHeaders(req)[1]; var viewModel = ViewModelItemFactory.Create(odiTextHolder, req.Handler, Serializer); viewModel.Paragraphs[0]. Replace("[odinumber]", req.Handler.Settings.Language.IntConverter.ToString(i)); req.AppendModelAction(new ElementViewModel() { viewModel }); }
protected virtual void InnerAppendCustomForm(CreateViewModelRequest <YmnosStructureRule> req, string key) { TextHolder header = req.Handler.Settings.Rule.Owner.GetCommonRuleChildren( new CommonRuleServiceRequest() { Key = key, RuleSerializer = Serializer }) .FirstOrDefault() as TextHolder; req.AppendModelAction(new ElementViewModel() { ViewModelItemFactory.Create(header, req.Handler, Serializer) }); }
public override void Create(CreateViewModelRequest <TextHolder> req) { if (req.Element == null) { //TODO: просто ничего не делаем, хотя надо бы это обрабатывать return; } ViewModelItem item = ViewModelItemFactory.Create(req.Element, req.Handler, Serializer); req.AppendModelAction(new ElementViewModel() { item }); }
private void AppendChorus(Odi odi, bool isLastKanonas, bool isOdi8, int i, ItemText defaultChorus) { var troparion = odi.Troparia[i]; var kind = ChorusKind.Common; if (isLastKanonas) { //проверяем, если последний канон, if (i == odi.Troparia.Count - 2) { if (!isOdi8) { //если предпоследний тропарь - Слава kind = ChorusKind.Slava; } else { //если 8-ая песня - Благословим kind = ChorusKind.Blagoslovim; } } else if (i == odi.Troparia.Count - 1) { //если последний - И ныне kind = ChorusKind.Inyne; } } ItemText text = GetChorus(kind, troparion, defaultChorus); if ((text?.IsEmpty == false) //добавляем пустой припев к Ирмосу в любом случае || troparion.Kind == YmnosKind.Irmos) { //добавляем припев var view = ViewModelItemFactory.Create((kind == ChorusKind.Common) ? ViewModelItemKind.Chorus : ViewModelItemKind.Text, new List <ParagraphViewModel>() { ParagraphVMFactory.Create(text, handler.Settings.Language.Name) }, handler, serializer); appendModelAction(new ElementViewModel() { view }); } }
private void AppendKanonasHeader(CreateViewModelRequest <KanonasRule> req, Kanonas kanonas) { int hash = kanonas.GetHashCode(); ViewModelItem view = null; if (!kanonasHeaders.ContainsKey(hash)) { TextHolder holder = null; string name = ""; if (kanonas.Name != null) { holder = GetHeaders(req)[2]; name = kanonas.Name[req.Handler.Settings.Language.Name]; } else { holder = GetHeaders(req)[3]; } var kanonasP = ParagraphVMFactory.Create(holder.Paragraphs[0], req.Handler.Settings.Language.Name); kanonasP.Replace("[kanonas]", name); kanonasP.Replace("[ihos]", req.Handler.Settings.Language.IntConverter.ToString(kanonas.Ihos)); view = ViewModelItemFactory.Create(TextHolderKind.Text, new List <ParagraphViewModel>() { kanonasP }); //string kanonasString = holder.Paragraphs[0][req.Handler.Settings.Language.Name]; //kanonasString = kanonasString.Replace("[kanonas]", name). // Replace("[ihos]", req.Handler.Settings.Language.IntConverter.ToString(kanonas.Ihos)); //view = ViewModelItemFactory.Create(TextHolderKind.Text, new List<string> { kanonasString }); kanonasHeaders.Add(hash, view); } else { view = kanonasHeaders[hash]; } req.AppendModelAction(new ElementViewModel() { view }); }
private (ViewModelItem Kontakion, ViewModelItem Ikos) GetHeaders(CreateViewModelRequest <KontakionRule> req, YmnosStructure kontakion) { List <TextHolder> headers = req.Handler.Settings.Rule.Owner.GetCommonRuleChildren( new CommonRuleServiceRequest() { Key = CommonRuleConstants.Kontakion, RuleSerializer = Serializer }).Cast <TextHolder>().ToList(); var viewKontakion = ViewModelItemFactory.Create(headers[0], req.Handler, Serializer); viewKontakion.Paragraphs[0].Replace(IHOS_STRING, req.Handler.Settings.Language.IntConverter.ToString(kontakion.Ihos)); var viewIkos = ViewModelItemFactory.Create(headers[1], req.Handler, Serializer); return(viewKontakion, viewIkos); }
private void AppendHeader(CreateViewModelRequest <PsalmRule> req) { TextHolder header = req.Handler.Settings.Rule.Owner.GetCommonRuleChildren( new CommonRuleServiceRequest() { Key = CommonRuleConstants.Psalm, RuleSerializer = Serializer }) .FirstOrDefault() as TextHolder; var viewHeader = ViewModelItemFactory.Create(header, req.Handler, Serializer); //вставляем номер Псалма viewHeader.Paragraphs[0].Replace(NUMBER, req.Handler.Settings.Language.IntConverter.ToString(req.Element.Number)); req.AppendModelAction(new ElementViewModel() { viewHeader }); }
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) })); }
private void AppendKatavasiaHeader(CreateViewModelRequest <KanonasRule> req, int ihos) { if (katavasiaHeader == null) { var katavasiaP = ParagraphVMFactory.Create(GetHeaders(req)[4].Paragraphs[0], req.Handler.Settings.Language.Name); katavasiaP.Replace("[ihos]", req.Handler.Settings.Language.IntConverter.ToString(ihos)); katavasiaHeader = ViewModelItemFactory.Create(TextHolderKind.Text, new List <ParagraphViewModel>() { katavasiaP }); //string str = GetHeaders(req)[4].Paragraphs[0][req.Handler.Settings.Language.Name]; //str = str.Replace("[ihos]", req.Handler.Settings.Language.IntConverter.ToString(ihos)); //katavasiaHeader = ViewModelItemFactory.Create(TextHolderKind.Text, new List<string> { str }); } req.AppendModelAction(new ElementViewModel() { katavasiaHeader }); }