private string VygenerovatCastTextu(CastTextu cast, Kniha kniha, Bible bible, bool dlouheCislaVerse) { if (cast is HlavniCastKnihy) { StringBuilder stavec = new StringBuilder(); stavec.Append($"<h2>{((HlavniCastKnihy) cast).Nadpis}</h2>\n"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is CastKnihy) { StringBuilder stavec = new StringBuilder(); stavec.Append($"<h4>{((CastKnihy) cast).Nadpis}</h4>\n"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is UvodKapitoly) { return($"<h3 id=\"{ZiskatIdKapitoly(((UvodKapitoly) cast).Id)}\">Kapitola {ZiskatKratkeCisloVerse(((UvodKapitoly) cast).Id)}</h3>\n"); } else if (cast is Vers) { StringBuilder stavec = new StringBuilder(); stavec.Append($"<sup>{(dlouheCislaVerse ? ZiskatDlouheCisloVerse(bible, (cast as Vers).Id) : ZiskatKratkeCisloVerse(((Vers) cast).Id))}</sup>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is Poznamka) { StringBuilder stavec = new StringBuilder(); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } int poradiKnihy = bible.Knihy.IndexOf(kniha); if (!PouzitePoznamky.ContainsKey(poradiKnihy)) { PouzitePoznamky.Add(poradiKnihy, new List <PouzitaPoznamka>()); } PouzitaPoznamka poznamka = new PouzitaPoznamka { Text = stavec.ToString(), Id = $"{PouzitePoznamky[poradiKnihy].Count + 1}" }; PouzitePoznamky[poradiKnihy].Add(poznamka); return($"<sup class=\"poznamka\"><a id=\"{ZiskatIdCitace(kniha, poznamka)}\" href=\"{KnihaPoznamky}#{ZiskatIdPoznamky(kniha, poznamka)}\" epub:type=\"noteref\">[{PouzitePoznamky[poradiKnihy].Count}]</a></sup> "); } else if (cast is Poezie) { StringBuilder stavec = new StringBuilder(); stavec.Append("<div class=\"poezie\">"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</div>"); return(stavec.ToString()); } else if (cast is RadekPoezie) { StringBuilder stavec = new StringBuilder("<p>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</p>"); return(stavec.ToString()); } else if (cast is Odstavec) { StringBuilder stavec = new StringBuilder(); stavec.Append("<p>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</p>"); return(stavec.ToString()); } else if (cast is FormatovaniTextu) { StringBuilder stavec = new StringBuilder(); if ((cast as FormatovaniTextu).Kurziva) { stavec.Append("<i>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</i>"); } return(stavec.ToString()); } else if (cast is CastPoezie) { return($"<h5>{cast.TextovaData}</h5>\n"); } else if (cast is CastTextuSTextem) { return(cast.TextovaData); } else { StringBuilder stavec = new StringBuilder(); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } }
private string VygenerovatCastTextu(CastTextu cast, Kniha kniha, Bible bible, bool dlouheCislaVerse) { if (cast is HlavniCastKnihy) { StringBuilder stavec = new StringBuilder(); stavec.Append($"<h2>{(cast as HlavniCastKnihy).Nadpis}</h2>\n"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is CastKnihy) { StringBuilder stavec = new StringBuilder(); stavec.Append($"<h4>{(cast as CastKnihy).Nadpis}</h4>\n"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is UvodKapitoly) { return($"<h3>Kapitola {ZiskatKratkeCisloVerse((cast as UvodKapitoly).Id)}</h3>\n"); } else if (cast is Vers) { StringBuilder stavec = new StringBuilder(); if (dlouheCislaVerse) { stavec.Append($"<sup>{ZiskatDlouheCisloVerse((cast as Vers).Id)}</sup>"); } else { // S tooltipem. string kratkeCislo = ZiskatKratkeCisloVerse((cast as Vers).Id); string dlouheCislo = ZiskatDlouheCisloVerse((cast as Vers).Id); stavec.Append($"<sup><a href=\"#\" data-html=\"true\" data-toggle=\"tooltip\" title=\"{HttpUtility.HtmlEncode(dlouheCislo)}\">{kratkeCislo}</a></sup>"); } foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } else if (cast is Poznamka) { StringBuilder stavec = new StringBuilder(); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } PouzitaPoznamka poznamka = new PouzitaPoznamka { Text = stavec.ToString(), Id = $"pozn-{PouzitePoznamky.Count + 1}" }; PouzitePoznamky.Add(poznamka); return($"<sup class=\"poznamka\"><a href=\"#\" data-html=\"true\" data-toggle=\"tooltip\" title=\"{HttpUtility.HtmlEncode(poznamka.Text)}\">[{PouzitePoznamky.Count}]</a></sup> "); } else if (cast is Poezie) { StringBuilder stavec = new StringBuilder(); stavec.Append("<p class=\"poezie\">"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</p>"); return(stavec.ToString()); } else if (cast is RadekPoezie) { StringBuilder stavec = new StringBuilder(); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("<br/>"); return(stavec.ToString()); } else if (cast is Odstavec) { StringBuilder stavec = new StringBuilder(); stavec.Append("<p>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</p>"); return(stavec.ToString()); } else if (cast is FormatovaniTextu) { StringBuilder stavec = new StringBuilder(); if ((cast as FormatovaniTextu).Kurziva) { stavec.Append("<i>"); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } stavec.Append("</i>"); } return(stavec.ToString()); } else if (cast is CastPoezie) { return($"<h5>{cast.TextovaData}</h5>\n"); } else if (cast is CastTextuSTextem) { return(cast.TextovaData); } else { StringBuilder stavec = new StringBuilder(); foreach (CastTextu potomek in cast.Potomci) { stavec.Append(VygenerovatCastTextu(potomek, kniha, bible, dlouheCislaVerse)); } return(stavec.ToString()); } }
/// <summary> /// Vrací ID string pro místo, kde je poznámka citovaná ([x]). /// </summary> /// <param name="kniha"></param> /// <param name="pozn"></param> /// <returns></returns> private static string ZiskatIdCitace(Kniha kniha, PouzitaPoznamka pozn) { return($"c-{kniha.Id}-{pozn.Id}"); }