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; }
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}"); }