@page "{id=A}" @model HaLive.Pages.ForschungModel @inject IReaderService readerservice; @inject ILibrary lib; @functions{ string setAct(string s) { if (Model.id.ToString().ToLower() == s.ToLower()) return "is-active"; else return ""; } } @{ // Acquire data ViewData["Title"] = "Forschungsbibliographie"; var id = Model.id.ToUpper(); var comments = Model.SelectComments(); var availableletters = lib.CommentsByCategoryLetter["forschung"].OrderBy(x => x.Key); // Parsing Rules List<(Func, Action)> OTag_Funcs = new List<(Func, Action)>() { ( x => x.Name == "lemma", (sb, tag) => sb.Append(HTMLHelpers.CreateElement("div", "lemma"))), ( x => x.Name == "title", (sb, tag) => sb.Append(HTMLHelpers.CreateElement("div", "title"))), ( x => x.Name == "titel", (sb, tag) => sb.Append(HTMLHelpers.CreateElement("div", "title"))) }; List<(Func, Action)> CTag_Funcs = new List<(Func, Action)>() { ( x => x.Name == "lemma", (sb, tag) => sb.Append(HTMLHelpers.CreateEndElement("div"))), ( x => x.Name == "title", (sb, tag) => sb.Append(HTMLHelpers.CreateEndElement("div"))), ( x => x.Name == "titel", (sb, tag) => sb.Append(HTMLHelpers.CreateEndElement("div"))) }; List<(Func, Action)> STag_Funcs = new List<(Func, Action)>() { ( x => x.Name == "line", (sb, tag) => sb.Append(HTMLHelpers.CreateElement("br")) ) }; List<(Func, Action)> Text_Funcs = new List<(Func, Action)>() { ( x => true, ( sb, txt ) => sb.Append(txt.Value) ) }; List<(Func, Action)> Whitespace_Funcs = new List<(Func, Action)>() { ( x => true, ( sb, txt ) => sb.Append(txt.Value) ) }; string handleComment(Comment comm) { StringBuilder sb = new StringBuilder(); var rd = readerservice.RequestStringReader(comm.Lemma); new StandardSubscriber(rd, sb, OTag_Funcs, STag_Funcs, CTag_Funcs, Text_Funcs, Whitespace_Funcs); sb.Append(HTMLHelpers.CreateElement("div", "lemma", comm.Index)); new LinkBuilder(lib, rd, sb); rd.Read(); var backlinks = lib.Backlinks.ContainsKey(comm.Index) ? lib.Backlinks[comm.Index].OrderBy(x => x.Letter) : null; if (backlinks != null) { sb.Append(HTMLHelpers.CreateElement("div", "backlinks")); var arrow = false; foreach(var blk in backlinks) { var let = lib.Metas.ContainsKey(blk.Letter) ? lib.Metas[blk.Letter] : null; if (let != null) { if (!arrow) { sb.Append(" → "); sb.Append("HKB "); arrow = true; } sb.Append(HTMLHelpers.CreateElement("a", "backlink", "/Briefe/" + let.Autopsic + "#" + blk.Page + "-" + blk.Line)); @* sb.Append(" "); *@ var linkstring = ""; var ZHstring = ""; var pglnstring= ""; @* linkstring += "HKB "; *@ linkstring += let.Autopsic; pglnstring += " ( " + blk.Page + "/" + blk.Line + " )"; linkstring += pglnstring; @* if (let.ZH != null) { ZHstring += HTMLHelpers.CreateElement("span", "autopsic", ""); ZHstring += "ZH " + HTMLHelpers.ToRoman(Int32.Parse(let.ZH.Volume)) ; ZHstring += HTMLHelpers.CreateEndElement("span"); linkstring += " " + ZHstring; } *@ sb.Append(linkstring); @* sb.Append("ZH" + " " + HTMLHelpers.ToRoman(Int32.Parse(let.Volume)) + " " + blk.Page + "/" + blk.Line + " (" + let.Autopsic + ")" ); *@ if (blk != backlinks.Last()) sb.Append(", "); sb.Append(HTMLHelpers.CreateEndElement("a")); } } sb.Append(HTMLHelpers.CreateEndElement("div")); } sb.Append(HTMLHelpers.CreateEndElement("div")); rd = readerservice.RequestStringReader(comm.Entry); new StandardSubscriber(rd, sb, OTag_Funcs, STag_Funcs, CTag_Funcs, Text_Funcs, Whitespace_Funcs); new LinkBuilder(lib, rd, sb); rd.Read(); return sb.ToString(); } }
@ViewData["Title"]
@if (String.IsNullOrWhiteSpace(Model.search)) {
@foreach (var entry in availableletters) { @entry.Key } Editionen } else {
Einträge, die »@Model.search« enthalten.   ← Zurück @if (Model.maxSearch) {

Zu viele Treffer. Die Anzeige wurde auf die ersten 150 Suchergebnisse beschränkt. } }
@if(comments == null || comments.Count() == 0) { @if(!String.IsNullOrWhiteSpace(Model.search)) { Keine Einträge gefunden. } } @foreach (var comm in comments) {
@Html.Raw(handleComment(comm)) @if(comm.Kommentare != null) { @foreach (var subcomm in comm.Kommentare.OrderBy(x => x.Value.Order)) {
@Html.Raw(handleComment(subcomm.Value))
} }
}
@section Scripts { }