Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
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();
            }
        }