Class NotificationNumber
Format- und Prefix-Prüfung für DIWASS-Notifizierungsnummern
(NotificationID, z.B. DE0126013237i).
public static class NotificationNumber
- Inheritance
-
NotificationNumber
- Inherited Members
Remarks
Aufbau der Nummer laut DIWASS-Spezifikation und den vergebenen Nummern im
Testbestand: <CA-Code><JJ><Laufnummer>i — z.B.
DE01 + 26 + 013237 + i, bzw. im Spec-Sample
BE01 + 25 + 000538 + i. Die Nummer wird von
DIWASS erzeugt bzw. geprüft (validateAndGenerateNotification, Eingabe
ist genau ein caCode); ein abweichender Prefix wird mit
INVALID-NOTIFICATION-CA-CODE-PREFIX abgelehnt.
Bewusst neutral: dieser Helper trifft keine Aussage darüber, welche Behörde den CA-Code stellt (zuständige Behörde am Versandort vs. Registrierungsbehörde des Notifizierenden) — er vergleicht nur gegen einen übergebenen Code. Die fachliche Zuordnung ist Gegenstand der DIWASS-Integrationstests.
Zwei Code-Längen: DIWASS führt den Behörden-Code im Directory
4-stellig (dirauthority:Code, z.B. DE49), im
Notifizierungsformular steht dagegen ein CompetentAuthorityID, der im
Testbestand 5-stellig ist (DE014). Deshalb prüft
HasCaCodePrefix(string, string) den Code auf Format (2 Buchstaben + 2–3 Ziffern)
und MatchCaCode(string, IEnumerable<string>) nimmt den längsten passenden Kandidaten —
ein naiver StartsWith würde beide Codes nicht auseinanderhalten.
Methods
- HasCaCodePrefix(string, string)
Prüft, ob
notificationIdeine wohlgeformte Notifizierungsnummer mit genaucaCodeals Prefix ist. Vergleich ist ordinal (case-sensitive); ein nicht CA-Code-förmigercaCodeliefertfalsestatt einer Exception, damit Prefix-Herkunftsprüfungen keine Teil-Prefixe „treffen".
- IsWellFormed(string)
Prüft, ob
notificationIddem Format einer DIWASS-Notifizierungsnummer entspricht (ohne Aussage über den CA-Code).
- MatchCaCode(string, IEnumerable<string>)
Liefert den CA-Code aus
candidateCaCodes, der als Prefix vonnotificationIdpasst — bei mehreren Treffern den längsten (DE014vorDE01).null, wenn keiner passt.