private gebruiksrechtenType[] GetGebruiksrechten(TOPXEntities entities, Source source) { var datum = DateTime.ParseExact(source.C91_zn_Datum_vergunning, "yyyy.MM.dd", CultureInfo.InvariantCulture); var gebruiksrechtenCol = from o in entities.Gebruiksrechten where o.naam == source.C2_dn_Bestand orderby o.begin select o; if (!gebruiksrechtenCol.Any()) { return(new gebruiksrechtenType[] { new gebruiksrechtenType() { omschrijvingVoorwaarden = new nonEmptyStringTypeAttribuut() { Value = datum <= Convert.ToDateTime("31-12-1970") ? "Vrij te gebruiken" : source.C19_1_DN_Tabnaam.ToLower().Contains("tekening") ? "Auteursrechtelijk beschermd wegens rechten van de architect" : "Vrij te gebruiken" }, datumOfPeriode = new datumOfPeriodeType() { datum = datum.ToString("yyyy-MM-dd") } } }); } // record(s) gebruiksrechten gevonden List <gebruiksrechtenType> listGebruiksrechten = new List <gebruiksrechtenType>(); foreach (var gebruiksrechten in gebruiksrechtenCol) { if (gebruiksrechten.eind != null) { listGebruiksrechten.Add( new gebruiksrechtenType() { omschrijvingVoorwaarden = new nonEmptyStringTypeAttribuut() { Value = gebruiksrechten.omschrijvingVoorwaarden }, datumOfPeriode = new datumOfPeriodeType() { periode = new periodeType() { begin = new datumOfJaarType() { Item = new datumOfJaarTypeDatum() { Value = (DateTime)gebruiksrechten.begin } }, //eind = new datumOfJaarType() //{ // Item = new datumOfJaarTypeDatum() // { // Value = (DateTime)gebruiksrechten.eind // } //} } } }); } else // openbaarheid.eind is niet ingevuld { listGebruiksrechten.Add( new gebruiksrechtenType() { omschrijvingVoorwaarden = new nonEmptyStringTypeAttribuut() { Value = gebruiksrechten.omschrijvingVoorwaarden }, datumOfPeriode = new datumOfPeriodeType() { //datum = new datumOfPeriodeType() { datum = Convert.ToDateTime(gebruiksrechten.begin).ToString("yyyy-MM-dd") } datum = Convert.ToDateTime(gebruiksrechten.begin).ToString("yyyy-MM-dd") } }); } } return(listGebruiksrechten.ToArray()); }
private ripRecordType RipOobjectAsDoc(Source bestandEntry, string identificatie, string relatieId, TOPXEntities entities) { //var identificatie = dossierId + "_FILE_" + count; var riprecordType = new ripRecordType() { recordHeader = new ripRecordHeaderType() { identificatie = identificatie, }, metadata = new[] { new ripMetadataType() { schemaURI = "topx", Any = ConvertTopxToXmlElement(GetDocAsTopx(bestandEntry, identificatie, relatieId, entities)) } } }; return(riprecordType); }
private topxType GetDocAsTopx(Source source, string identificatie, string relatieId, TOPXEntities entities) { var topx = new topxType { Item = new aggregatieType() { identificatiekenmerk = new nonEmptyStringTypeAttribuut() { Value = identificatie }, eventGeschiedenis = new eventGeschiedenisType[] { new eventGeschiedenisType() { datumOfPeriode = new datumOfPeriodeType() { datum = DateTime.ParseExact(source.C91_zn_Datum_vergunning, "yyyy.MM.dd", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd") }, type = new nonEmptyStringTypeAttribuut() { Value = "Verzending" }, verantwoordelijkeFunctionaris = new nonEmptyStringTypeAttribuut() { Value = "Afdeling Ondersteuning" } } }, aggregatieniveau = new aggregatieTypeAggregatieniveau() { Value = aggregatieAggregatieniveauType.Record }, naam = new[] { new nonEmptyStringTypeAttribuut() { Value = source.C4_dn_Omschrijving } }, taal = new[] { new taalTypeAttribuut() { Value = taalType.dut } }, relatie = new[] { new relatieType() { relatieID = new nonEmptyStringTypeAttribuut() { Value = relatieId }, typeRelatie = new nonEmptyStringTypeAttribuut() { Value = "Hiërarchisch" }, datumOfPeriode = new datumOfPeriodeType() { datum = DateTime.ParseExact(source.Aanmaakdatum_bestand, "yyyy.MM.dd", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd") }, } }, vertrouwelijkheid = new vertrouwelijkheidType[] { new vertrouwelijkheidType() { classificatieNiveau = new vertrouwelijkheidTypeClassificatieNiveau() { Value = classificatieNiveauType.Nietvertrouwelijk }, datumOfPeriode = new datumOfPeriodeType() { datum = DateTime.ParseExact(source.C91_zn_Datum_vergunning, "yyyy.MM.dd", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd") } } }, openbaarheid = GetOpenbaarheid(entities, source) , gebruiksrechten = GetGebruiksrechten(entities, source) } }; 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(); } }