Пример #1
0
        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());
            }
        }
Пример #3
0
 /// <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}");
 }