private ripRecordType RipObjectAsBestand(Source bestandEntry, string dossierId, string relatieId, checksum checksum, FileSizes fileSize, string bestandsformaat, string algoritme) { var identificatie = dossierId; var riprecordType = new ripRecordType() { recordHeader = new ripRecordHeaderType() { identificatie = identificatie, }, metadata = new[] { new ripMetadataType() { schemaURI = "topx", Any = ConvertTopxToXmlElement(GetBestandAsTopx(bestandEntry, relatieId, identificatie, bestandsformaat, algoritme, checksum, fileSize)) } } }; return(riprecordType); }
private topxType GetBestandAsTopx(Source source, string releatieId, string identificatiekenmerk, string bestandsformaat, string algoritme, checksum checksum, FileSizes fileSize) { string strGemaaktOp; DateTime gemaaktOp; if (fileSize.Gemaakt_op == null) { strGemaaktOp = "NIET GEVONDEN"; gemaaktOp = DateTime.MinValue; } else { gemaaktOp = fileSize.Gemaakt_op != null ? gemaaktOp = DateTime.ParseExact(fileSize.Gemaakt_op, "d-M-yyyy H:m", CultureInfo.InvariantCulture) : gemaaktOp = DateTime.MinValue; strGemaaktOp = gemaaktOp.ToString("yyyy-MM-dd"); } var topx = new topxType { Item = new bestandType() { identificatiekenmerk = new nonEmptyStringTypeAttribuut() { Value = identificatiekenmerk }, aggregatieniveau = new bestandTypeAggregatieniveau() { Value = bestandAggregatieniveauType.Bestand }, naam = new[] { new nonEmptyStringTypeAttribuut() { Value = source.OmschrijvingCompleet } }, //plaats = new @string() { Value = "storage location" }, relatie = new[] { new relatieType() { relatieID = new nonEmptyStringTypeAttribuut() { Value = releatieId }, typeRelatie = new nonEmptyStringTypeAttribuut() { Value = "Hiërarchisch" }, datumOfPeriode = new datumOfPeriodeType() { datum = strGemaaktOp }, } }, vorm = new vormType() { redactieGenre = new @string() { Value = source.C19_1_DN_Tabnaam }, }, formaat = new[] { new formaatType() { identificatiekenmerk = new nonEmptyStringTypeAttribuut() { Value = identificatiekenmerk }, bestandsnaam = new bestandsnaamType() { naam = new nonEmptyStringTypeAttribuut() { Value = source.C2_dn_Bestand }, extensie = new @string() { Value = source.Bestandsformaat } }, omvang = new formaatTypeOmvang() { Value = fileSize.Omvang_Byte__B_ }, //bestandsformaat = new @string() {Value = "fmt/18"}, bestandsformaat = new @string() { Value = bestandsformaat }, fysiekeIntegriteit = new fysiekeIntegriteitType() { algoritme = new nonEmptyStringTypeAttribuut() { Value = algoritme }, waarde = new nonEmptyStringTypeAttribuut() { Value = checksum.Checksum1 }, datumEnTijd = new fysiekeIntegriteitTypeDatumEnTijd() { Value = gemaaktOp } }, datumAanmaak = new formaatTypeDatumAanmaak() { Value = strGemaaktOp } }, } } }; return(topx); }
public recordInformationPackage ParseCSV(int nrOfRecords = 0) { using (var entities = new TOPXEntities()) { var identificatieArchief = "NL-0834-10002"; var datumArchief = Convert.ToDateTime(DateTime.Today); var omschrijvingArchief = "Bouwvergunningen Gemeente Raamsdonk 1993 - 1996"; var bronArchief = "Digitale bouwvergunningen"; var doelArchief = "Bouwvergunningen om op te nemen in e-Depot"; var naamArchief = omschrijvingArchief; //var identificatieArchief = "NL-0779-10001"; //var datumArchief = Convert.ToDateTime(DateTime.Today); //var omschrijvingArchief = "Bouwvergunningen Gemeente Geertruidenberg 1928 - 1975"; //var bronArchief = "Digitale bouwvergunningen"; //var doelArchief = "Bouwvergunningen om op te nemen in e-Depot"; //var naamArchief = "Bouwvergunningen Gemeente Geertruidenberg 1928 - 1975"; Rip = new recordInformationPackage() { packageHeader = RipHeader(identificatieArchief, datumArchief, omschrijvingArchief, bronArchief, doelArchief), record = RipArchief(identificatieArchief, naamArchief) }; var listOfDossiers = GetListOfDossiers(entities); var recordCounter = 0; foreach (var dossier in listOfDossiers) { try { var entries = (from d in entities.Source where d.C2_dn_Bestand.StartsWith(dossier) select d).ToList(); var dossiersZonderBeschikking = (from d in entities.DossiersZonderBeschikking select d.DossierZonderBeschikking).ToList(); //var dossierEntry = (from d in entries // where d.C19_1_DN_Tabnaam == "Beschikking" // || d.C2_dn_Bestand.Contains("GDB-0391") // || d.C2_dn_Bestand.Contains("GDB-1064") // || d.C2_dn_Bestand.Contains("GDB-0005-02") // select d); var dossierEntry = (from d in entries where d.C19_1_DN_Tabnaam == "Beschikking" || dossiersZonderBeschikking.Contains(d.C2_dn_Bestand.Substring(0, d.C2_dn_Bestand.Length - 3)) select d).ToList(); if (!dossierEntry.Any()) { Logger.Log(dossier, "ERROR - Geen beschikking gevonden"); continue; } var isExceptionGeenBeschikking = dossiersZonderBeschikking.Contains(dossierEntry[0].C2_dn_Bestand.Substring(0, dossierEntry[0].C2_dn_Bestand.Length - 3)); if (dossierEntry.Count() > 1 && !isExceptionGeenBeschikking) { Logger.Log(dossier, "Meer dan 2 beschikkingen in 1 dossier"); throw new Exception("Meer dan 2 beschikkingen in 1 dossier"); } var source = dossierEntry.FirstOrDefault(); if (string.IsNullOrEmpty(source.Datum_vergunning) || string.IsNullOrEmpty(source.C91_zn_Datum_vergunning)) { Logger.Log(source.C2_dn_Bestand, "ERROR - Datum vergunning leeg"); continue; } if (string.IsNullOrEmpty(source.OmschrijvingCompleet)) { Logger.Log(source.C2_dn_Bestand, "OmschrijvingCompleet is leeg (Excel kolom: \"Omschrijving bouwvergunning, adres, huisnummer, plaatsnaam\" "); continue; } if (source.Datum_vergunning.StartsWith("12")) { Logger.Log(source.C2_dn_Bestand, "Datum vergunning label onjuist, kan niet met een getal beginnen, waarschijnlijk meerdere kolommen onjuist"); continue; } var testForDoubles = from t in entities.Source where t.C2zn__Zaaknummer == source.C2zn__Zaaknummer && t.C2_dn_Bestand.Substring(0, t.C2_dn_Bestand.Length - 3) != source.C2_dn_Bestand.Substring(0, source.C2_dn_Bestand.Length - 3) select t; if (testForDoubles.Any()) { Logger.Log(source.C2_dn_Bestand, $"Zaaknummer {source.C2zn__Zaaknummer} komt meer dan 1 keer voor bij verschillende dossiers."); continue; } Rip.record.Add(RipBeschikkingAsDossier(source, dossier, identificatieArchief)); ZaaknummerMarkForDelivered.Add(dossier); var bestandEntries = (from d in entries select d); var count = 0; foreach (var bestandEntry in bestandEntries) { //double test2; //if (!double.TryParse(bestandEntry.FileSize_Bytes.ToString(), out test2)) //{ // throw new Exception("File size is not in correct format"); //} var zaaknummer = Extensions.GetZaakNummerWithYear(bestandEntry.C2zn__Zaaknummer); var idRecordAsDoc = zaaknummer + "_" + bestandEntry.C2_dn_Bestand; Rip.record.Add(RipOobjectAsDoc(bestandEntry, idRecordAsDoc, zaaknummer, entities)); var fileSize = (from f in entities.FileSizes where f.Bestandsnaam == bestandEntry.C2_dn_Bestand + ".pdf" select f).FirstOrDefault(); if (fileSize == null) { fileSize = new FileSizes() { Bestandsnaam = "NIET GEVONDEN" }; Logger.Log(bestandEntry.C2_dn_Bestand, $"Bestandsnaam niet gevonden in filesize tabel van file"); } var fileChecksum = (from f in entities.checksum where f.Filename == fileSize.Bestandsnaam select f).FirstOrDefault(); if (fileChecksum == null) { Logger.Log(bestandEntry.C2_dn_Bestand, "Checksum niet gevonden van file"); fileChecksum = new checksum() { Checksum1 = "NIET GEVONDEN" }; } Rip.record.Add(RipObjectAsBestand(bestandEntry, bestandEntry.C2_dn_Bestand, idRecordAsDoc, fileChecksum, fileSize, "fmt/18", "sha256")); count += 1; } } catch (Exception ex) { Logger.Log(dossier, $"ERROR: {ex.Message}"); } recordCounter++; if (nrOfRecords > 0) { if (recordCounter >= nrOfRecords) { return(Rip); } } } return(Rip); //.Serialize(); } }