public Belgie ExtractFromFiles(string path)
        {
            Dictionary <string, Graaf>     graafIdkoppeling = MaakGraven(path);
            Dictionary <string, Provincie> provincies       = BouwStraten(path, graafIdkoppeling);
            List <Provincie> provinciesLijst = new List <Provincie>();

            foreach (var x in provincies)
            {
                provinciesLijst.Add(x.Value);
            }
            Belgie belg = new Belgie(provinciesLijst);

            return(belg);
        }
        static void Main()
        {
            //setup
            string zipPath         = @"D:\Programmeren Data en Bestanden\Wegen Examen\WRdata.zip";
            string unzippedPath    = @"D:\Programmeren Data en Bestanden\Wegen Examen\WRdata\WRdata-master";
            string reportPath      = @"D:\Programmeren Data en Bestanden\Wegen Examen\Rapporten";
            string serializingPath = @"D:\Programmeren Data en Bestanden\Wegen Examen\WRdata";

            Unzipper.Unzip(zipPath);
            FileExtraction fe   = new FileExtraction();
            Belgie         belg = fe.ExtractFromFiles(unzippedPath);

            Console.WriteLine("Writing Report");
            ReportWriter rw = new ReportWriter(reportPath);

            rw.CompleteReport(belg);

            Serializer serializer = new Serializer(belg, serializingPath);

            serializer.Serialize();
            Console.WriteLine("finished");
        }
 public Serializer(Belgie belg, string path)
 {
     Belg    = belg;
     BinPath = path;
 }
Beispiel #4
0
        public void CompleteReport(Belgie belg)
        {
            //het oude rapport verwijderen indien er een is
            string exitPath = Path.Combine(ReportsPath, "Rapport tool 1.txt");

            CheckAndDeleteFile(exitPath);


            int totaalAantalStraten = 0;

            int[]            aantalStraten = new int[belg.Provincies.Count];
            List <Provincie> provincies    = belg.Provincies.OrderBy(p => p.Naam).ToList();

            for (int i = 0; i < belg.Provincies.Count; i++)
            {
                provincies[i].Gemeenten = provincies[i].Gemeenten.OrderBy(g => g.Naam).ToList();
                foreach (Gemeente gem in provincies[i].Gemeenten)
                {
                    gem.Straten          = gem.Straten.OrderBy(s => s.Lengte).ToList();
                    totaalAantalStraten += gem.Straten.Count;
                    aantalStraten[i]    += gem.Straten.Count;
                }
            }

            using (StreamWriter writer = File.CreateText(exitPath))
            {
                writer.WriteLine($"Totaal aantal straten: {totaalAantalStraten}");
                writer.WriteLine();
                writer.WriteLine("Aantal straten per provincie");
                for (int i = 0; i < aantalStraten.Length; i++)
                {
                    writer.WriteLine($"    -   {provincies[i].Naam}:{aantalStraten[i]}");
                }
                writer.WriteLine();
                foreach (Provincie prov in belg.Provincies)
                {
                    writer.WriteLine($"Straatinfo {prov.Naam}");
                    foreach (Gemeente gem in prov.Gemeenten)
                    {
                        writer.WriteLine($"    -{gem.Naam}: {gem.Straten.Count} straten met een totale lengte van: {gem.BerekenTotaleLengte()}m");
                        //voor het geval dat er meerder straten zijn met dezelfde lengte
                        int i = 0;
                        if (gem.Straten.Count != 0)
                        {
                            while (gem.Straten[i].Lengte == gem.Straten[0].Lengte)
                            {
                                writer.WriteLine($"         Kortste Straat - ID: {gem.Straten[i].StraatID}; {gem.Straten[i].Naam}: {gem.Straten[i].Lengte}m");
                                i++;
                            }

                            i = gem.Straten.Count - 1;
                            while (gem.Straten[i].Lengte == gem.Straten[gem.Straten.Count - 1].Lengte)
                            {
                                writer.WriteLine($"         Langste Straat - ID: {gem.Straten[i].StraatID}; {gem.Straten[i].Naam}: {gem.Straten[i].Lengte}m");
                                i--;
                            }
                        }
                    }
                    writer.WriteLine();
                }
            }
            Console.WriteLine($"Report was placed in {exitPath}");
        }