private DokumentDIP AddDokumentData(DossierDIP dossier, IList <ICmisExtensionElement> extensions, ElasticArchiveRecord documentRecord, List <RepositoryFile> filesToIgnore) { Log.Verbose("Adding Dokument data with metadata: {extensions}", JsonConvert.SerializeObject(extensions)); var dokument = new DokumentDIP { Titel = string.IsNullOrEmpty(documentRecord?.Title) ? metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dokument/Dokument/Titel") : documentRecord.Title, Id = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:dokument/dokument@id"), Erscheinungsform = Enum.TryParse(metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dokument/Dokument/Erscheinungsform"), true, out ErscheinungsformDokument ef) ? ef : ErscheinungsformDokument.nichtdigital, Registrierdatum = metadataAccess.GetHistorischerZeitpunkt(extensions, "ARELDA:Dokument/Dokument/Registrierdatum"), Entstehungszeitraum = documentRecord?.CreationPeriod == null ? metadataAccess.GetHistorischerZeitraum(extensions, "ARELDA:Dokument/Dokument/Entstehungszeitraum") : GetEntstehungszeitraum(documentRecord.CreationPeriod), Klassifizierungskategorie = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dokument/Dokument/Klassifizierungskategorie"), Datenschutz = bool.TryParse(metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dokument/Dokument/Datenschutz"), out var datenschutz) && datenschutz, Oeffentlichkeitsstatus = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dokument/Dokument/Oeffentlichkeitsstatus"), OeffentlichkeitsstatusBegruendung = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dokument/Dokument/OeffentlichkeitsstatusBegruendung"), SonstigeBestimmungen = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dokument/Dokument/SonstigeBestimmungen"), Bemerkung = string.IsNullOrEmpty(documentRecord?.ZusätzlicheInformationen()) ? metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dokument/Dokument/Bemerkung") : documentRecord.ZusätzlicheInformationen(), DateiRef = GetFilteredDateiRef(metadataAccess.GetExtendedPropertyValues(extensions, "ARELDA:Dokument/Dokument/DateiRef"), filesToIgnore) }; // Add optional data if (!string.IsNullOrEmpty(documentRecord?.ReferenceCode)) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Signatur", Value = documentRecord.ReferenceCode }); } if (!string.IsNullOrEmpty(documentRecord?.Level)) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Stufe", Value = documentRecord.Level }); } if (!string.IsNullOrEmpty(documentRecord?.FormerReferenceCode)) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Frühere Signaturen", Value = documentRecord.FormerReferenceCode }); } if (documentRecord?.ArchiveplanContext.Count > 0) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Archivplankontext", Value = JsonConvert.SerializeObject(documentRecord.ArchiveplanContext) }); } if (!string.IsNullOrEmpty(documentRecord?.Form())) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Form", Value = documentRecord.Form() }); } if (!string.IsNullOrEmpty(documentRecord?.WithinInfo)) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Darin", Value = documentRecord.WithinInfo }); } if (!string.IsNullOrEmpty(documentRecord?.Thema())) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Thema", Value = documentRecord.Thema() }); } if (!string.IsNullOrEmpty(documentRecord?.Format())) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Format", Value = documentRecord.Format() }); } if (!string.IsNullOrEmpty(documentRecord?.Urheber())) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Urheber", Value = documentRecord.Urheber() }); } if (!string.IsNullOrEmpty(documentRecord?.Verleger())) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Verleger", Value = documentRecord.Verleger() }); } if (!string.IsNullOrEmpty(documentRecord?.Abdeckung())) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Abdeckung", Value = documentRecord.Abdeckung() }); } if (!string.IsNullOrEmpty(documentRecord?.PrimaryDataLink)) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Identifikation digitales Magazin", Value = documentRecord.PrimaryDataLink }); } if (documentRecord?.CreationPeriod != null) { dokument.zusatzDaten.Add( new ZusatzDatenMerkmal { Name = "Entstehungszeitraum Anzeigetext", Value = documentRecord.CreationPeriod.Text }); } var reihenfolge = metadataAccess.GetExtendedPropertyBagValue(extensions, "ARELDA:Dokument/Dokument/Zusatzdaten/Merkmal", "ReihenfolgeAnalogesDossier"); if (!string.IsNullOrEmpty(reihenfolge)) { dokument.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "ReihenfolgeAnalogesDossier", Value = reihenfolge }); } dossier.Dokument.Add(dokument); return(dokument); }
private DossierDIP AddDossierData(IList <DossierDIP> dossierCollection, IList <ICmisExtensionElement> extensions, ElasticArchiveRecord dossierRecord, bool addDateiRefList, List <RepositoryFile> filesToIgnore) { Log.Verbose("Adding Dossier data with metadata: {extensions} and index record customfields {dossierRecord}", JsonConvert.SerializeObject(extensions), JsonConvert.SerializeObject(dossierRecord?.CustomFields)); var dossier = new DossierDIP { Aktenzeichen = string.IsNullOrEmpty(dossierRecord?.Aktenzeichen()) ? metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/Aktenzeichen") : dossierRecord.Aktenzeichen(), Zusatzmerkmal = string.IsNullOrEmpty(dossierRecord?.Zusatzmerkmal()) ? metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/Zusatzmerkmal") : dossierRecord.Zusatzmerkmal(), Titel = string.IsNullOrEmpty(dossierRecord?.Title) ? metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/Titel") : dossierRecord.Title, Inhalt = string.IsNullOrEmpty(dossierRecord?.WithinInfo) ? metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/Inhalt") : dossierRecord.WithinInfo, Id = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:dossier/dossier@id"), Erscheinungsform = Enum.TryParse(metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/Erscheinungsform"), true, out ErscheinungsformDossier ef) ? ef : ErscheinungsformDossier.keineAngabe, Umfang = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/Umfang"), FederfuehrendeOrganisationseinheit = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/FederfuehrendeOrganisationseinheit"), Eroeffnungsdatum = metadataAccess.GetHistorischerZeitpunkt(extensions, "ARELDA:Dossier/Dossier/Eroeffnungsdatum"), Abschlussdatum = metadataAccess.GetHistorischerZeitpunkt(extensions, "ARELDA:Dossier/Dossier/Abschlussdatum"), Entstehungszeitraum = dossierRecord?.CreationPeriod == null ? metadataAccess.GetHistorischerZeitraum(extensions, "ARELDA:Dossier/Dossier/Entstehungszeitraum") : GetEntstehungszeitraum(dossierRecord.CreationPeriod), EntstehungszeitraumAnmerkung = string.IsNullOrEmpty(dossierRecord?.EntstehungszeitraumAnmerkung()) ? metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/EntstehungszeitraumAnmerkung") : dossierRecord.EntstehungszeitraumAnmerkung(), Klassifizierungskategorie = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/Klassifizierungskategorie"), Datenschutz = bool.TryParse(metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/Datenschutz"), out var datenschutz) && datenschutz, Oeffentlichkeitsstatus = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/Oeffentlichkeitsstatus"), OeffentlichkeitsstatusBegruendung = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/OeffentlichkeitsstatusBegruendung"), SonstigeBestimmungen = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/SonstigeBestimmungen"), // ToDO: In order to handle Vorgang we would need code that can handle collections. Currently we don't need that property. // Vorgang = metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/Vorgang"), Bemerkung = string.IsNullOrEmpty(dossierRecord?.ZusätzlicheInformationen()) ? metadataAccess.GetExtendedPropertyValue(extensions, "ARELDA:Dossier/Dossier/Bemerkung") : dossierRecord.ZusätzlicheInformationen(), DateiRef = addDateiRefList ? GetFilteredDateiRef(metadataAccess.GetExtendedPropertyValues(extensions, "ARELDA:Dossier/Dossier/DateiRef"), filesToIgnore) : null }; // Add optional data if (!string.IsNullOrEmpty(dossierRecord?.ReferenceCode)) { dossier.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Signatur", Value = dossierRecord.ReferenceCode }); } if (!string.IsNullOrEmpty(dossierRecord?.Level)) { dossier.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Stufe", Value = dossierRecord.Level }); } if (!string.IsNullOrEmpty(dossierRecord?.FormerReferenceCode)) { dossier.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Frühere Signaturen", Value = dossierRecord.FormerReferenceCode }); } if (dossierRecord?.ArchiveplanContext.Count > 0) { dossier.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Archivplankontext", Value = JsonConvert.SerializeObject(dossierRecord.ArchiveplanContext) }); } if (!string.IsNullOrEmpty(dossierRecord?.Land())) { dossier.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Land", Value = dossierRecord.Land() }); } if (!string.IsNullOrEmpty(dossierRecord?.Form())) { dossier.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Form", Value = dossierRecord.Form() }); } if (!string.IsNullOrEmpty(dossierRecord?.FrüheresAktenzeichen())) { dossier.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Früheres Aktenzeichen", Value = dossierRecord.FrüheresAktenzeichen() }); } if (!string.IsNullOrEmpty(dossierRecord?.PrimaryDataLink)) { dossier.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Identifikation digitales Magazin", Value = dossierRecord.PrimaryDataLink }); } if (dossierRecord?.CreationPeriod != null) { dossier.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "Entstehungszeitraum Anzeigetext", Value = dossierRecord.CreationPeriod.Text }); } var reihenfolge = metadataAccess.GetExtendedPropertyBagValue(extensions, "ARELDA:Dossier/Dossier/Zusatzdaten/Merkmal", "ReihenfolgeAnalogesDossier"); if (!string.IsNullOrEmpty(reihenfolge)) { dossier.zusatzDaten.Add(new ZusatzDatenMerkmal { Name = "ReihenfolgeAnalogesDossier", Value = reihenfolge }); } dossierCollection.Add(dossier); return(dossier); }