Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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();
            }
        }