From 190bf4a4f6d915258874eabfbd4c717309b243d7 Mon Sep 17 00:00:00 2001 From: Simon Martens Date: Wed, 20 Nov 2024 16:52:03 +0100 Subject: [PATCH] Anpassungen CMIF --- HaDocumentV6/Reactors/PersonDefsReactor.cs | 11 ++-- HaWeb/CMIF/model.cs | 67 ++++++++++++---------- HaWeb/Views/Shared/_HKBLayout.cshtml | 17 +++--- 3 files changed, 49 insertions(+), 46 deletions(-) diff --git a/HaDocumentV6/Reactors/PersonDefsReactor.cs b/HaDocumentV6/Reactors/PersonDefsReactor.cs index fe7be28..fb9f2e7 100644 --- a/HaDocumentV6/Reactors/PersonDefsReactor.cs +++ b/HaDocumentV6/Reactors/PersonDefsReactor.cs @@ -1,18 +1,14 @@ -using System; using HaXMLReader.EvArgs; using HaXMLReader.Interfaces; using HaDocument.Models; -using System.Collections.Generic; -using System.Text; -using System.Xml; namespace HaDocument.Reactors { class PersonDefsReactor : Reactor { internal Dictionary CreatedInstances; // State - private string Index; - private string Name; + private string? Index; + private string? Name; private string Prename = ""; private string Surname = ""; private string? Reference; @@ -45,7 +41,7 @@ namespace HaDocument.Reactors { Prename = tag["vorname"]; Surname = tag["nachname"]; Reference = String.IsNullOrWhiteSpace(tag["ref"]) ? null : tag["ref"]; - IsOrg = tag["org"] == "true"; + IsOrg = String.IsNullOrWhiteSpace(tag["org"]) ? false : tag["org"] == "true"; if (!String.IsNullOrWhiteSpace(tag["komm"])) Komm = tag["komm"]; Add(); _active = false; @@ -63,6 +59,7 @@ namespace HaDocument.Reactors { } public void Add() { + if (Index == null || Name == null) return; CreatedInstances.Add(Index, new Person(Index, Name, Prename, Surname, Komm, Reference, null, IsOrg)); } } diff --git a/HaWeb/CMIF/model.cs b/HaWeb/CMIF/model.cs index 0e88966..1695fea 100644 --- a/HaWeb/CMIF/model.cs +++ b/HaWeb/CMIF/model.cs @@ -27,13 +27,9 @@ public class TitleStatement { [XmlElement("editor")] public List? Editor { get; set; } = new List() { new Editor() { - Email = "keidel@tss-hd.de", - Name = "Leonard Keidel", + Email = "post@hamann-ausgabe.de", + Name = "Janina Reibold, Leonard Keidel, Simon Martens", }, - new Editor() { - Email = "reibold@tss-hd.de", - Name = "Janina Reibold", - } }; } @@ -148,6 +144,8 @@ public class CorrespondenceAction { public List? PersonName { get; set; } [XmlElement("placeName")] public List? PlaceName { get; set; } + [XmlElement("orgName")] + public List? OrgName { get; set; } [XmlElement("date")] public Date? Date { get; set; } } @@ -209,6 +207,7 @@ public class TeiDocument { var UNKNOWN_URL = "http://correspSearch.net/unknown"; var UNKNOWN_TEXT = "Unbekannt"; var LETTER_URL = "https://hamann-ausgabe.de/HKB/Briefe/"; + var PERSON_URL = "https://hamann-ausgabe.de/HKB/Person/"; var DATE_OUTPUT = "yyyy-MM-dd"; List cds = new List(); foreach (var meta in lib.Metas.Values) { @@ -252,46 +251,52 @@ public class TeiDocument { } } if (meta.Senders != null && meta.Senders.Count() > 0) { - sent.PersonName = new List(); + var PersonName = new List(); + var OrgName = new List(); foreach (var sender in meta.Senders) { - var pn = new PersonName(); if (sender == "-1") { - pn.Name = UNKNOWN_TEXT; - pn.Reference = UNKNOWN_URL; + PersonName.Add(new PersonName() { Name = UNKNOWN_TEXT, Reference = UNKNOWN_URL }); } else if (lib.Persons.ContainsKey(sender)) { - pn.Name = lib.Persons[sender].Name; - if (lib.Persons[sender].Reference != null && !string.IsNullOrWhiteSpace(lib.Persons[sender].Reference)) { - pn.Reference = lib.Persons[sender].Reference; + var libpers = lib.Persons[sender]; + if (libpers.IsOrg) { + OrgName.Add(libpers.Name); + } + else { + var pref = PERSON_URL + libpers.Index; + if (libpers.Reference != null && !string.IsNullOrWhiteSpace(libpers.Reference)) + pref = libpers.Reference; + PersonName.Add(new PersonName() { Name = libpers.Name, Reference = pref }); } } - else { - pn = null; - } - if (pn != null) sent.PersonName.Add(pn); } + if (PersonName.Count() > 0) sent.PersonName = PersonName; + if (OrgName.Count() > 0) sent.OrgName = OrgName; } cd.CorrespondenceActions = new List() { sent }; var recieved = new CorrespondenceAction(); if (meta.Receivers != null && meta.Receivers.Count() > 0) { - recieved.PersonName = new List(); - foreach (var sender in meta.Receivers) { - var pn = new PersonName(); - if (sender == "-1") { - pn.Name = UNKNOWN_TEXT; - pn.Reference = UNKNOWN_URL; + var PersonName = new List(); + var OrgName = new List(); + foreach (var reciever in meta.Receivers) { + if (reciever == "-1") { + PersonName.Add(new PersonName() { Name = UNKNOWN_TEXT, Reference = UNKNOWN_URL }); } - else if (lib.Persons.ContainsKey(sender)) { - pn.Name = lib.Persons[sender].Name; - if (lib.Persons[sender].Reference != null && !string.IsNullOrWhiteSpace(lib.Persons[sender].Reference)) { - pn.Reference = lib.Persons[sender].Reference; + else if (lib.Persons.ContainsKey(reciever)) { + var libpers = lib.Persons[reciever]; + if (libpers.IsOrg) { + OrgName.Add(libpers.Name); + } + else { + var pref = PERSON_URL + libpers.Index; + if (libpers.Reference != null && !string.IsNullOrWhiteSpace(libpers.Reference)) + pref = libpers.Reference; + PersonName.Add(new PersonName() { Name = libpers.Name, Reference = pref }); } } - else { - pn = null; - } - if (pn != null) recieved.PersonName.Add(pn); } + if (PersonName.Count() > 0) recieved.PersonName = PersonName; + if (OrgName.Count() > 0) recieved.OrgName = OrgName; } recieved.Type = "received"; cd.CorrespondenceActions.Add(recieved); diff --git a/HaWeb/Views/Shared/_HKBLayout.cshtml b/HaWeb/Views/Shared/_HKBLayout.cshtml index 5d08b3b..f4697e2 100644 --- a/HaWeb/Views/Shared/_HKBLayout.cshtml +++ b/HaWeb/Views/Shared/_HKBLayout.cshtml @@ -2,18 +2,18 @@ -@await Html.PartialAsync("/Views/Shared/_Head.cshtml") + @await Html.PartialAsync("/Views/Shared/_Head.cshtml")
- @await Html.PartialAsync("/Views/Shared/_HKBMenu.cshtml") -
- @RenderBody() -
-
- @await Html.PartialAsync("/Views/Shared/_Footer.cshtml") -
+ @await Html.PartialAsync("/Views/Shared/_HKBMenu.cshtml") +
+ @RenderBody() +
+
+ @await Html.PartialAsync("/Views/Shared/_Footer.cshtml") +
@await Html.PartialAsync("/Views/Shared/_ScrollButton.cshtml") @@ -22,4 +22,5 @@ @await RenderSectionAsync("JavaScript", false) @await Html.PartialAsync("/Views/Shared/_Scripts.cshtml") +