public override int GetHashCode() { // gegenereerde code unchecked { var hashCode = (Naam != null ? Naam.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Straat != null ? Straat.GetHashCode() : 0); hashCode = (hashCode * 397) ^ Nummer.GetHashCode(); hashCode = (hashCode * 397) ^ (Bus != null ? Bus.GetHashCode() : 0); hashCode = (hashCode * 397) ^ Postcode; hashCode = (hashCode * 397) ^ (Gemeente != null ? Gemeente.GetHashCode() : 0); hashCode = (hashCode * 397) ^ AantalWerkuren.GetHashCode(); return(hashCode); } }
public void StraatHuisTest() { Huis mynHuis = new Huis(); Huis jouwHuis = new Huis(); mynHuis.Ramen = 10; jouwHuis.Ramen = 1; Straat straatje = new Straat(); straatje.Huizen = new List <Huis>(); straatje.Huizen.Add(mynHuis); straatje.Huizen.Add(jouwHuis); int aantalGeteld = straatje.GetAantalRamen(); Assert.Equal(11, aantalGeteld); }
public void AddStraatPlusLink(Straat straat) { SqlConnection connection = getConnection(); string straatQuery = "INSERT INTO dbo.straat VALUES(@Id,@Naam)"; string linkQuery = "INSERT INTO dbo.gemeenteStraatLink VALUES(@StraatId,@GemeenteId)"; using (SqlCommand linkCommand = connection.CreateCommand()) using (SqlCommand gemCommand = connection.CreateCommand()) { connection.Open(); SqlTransaction transaction = connection.BeginTransaction(); linkCommand.Transaction = transaction; gemCommand.Transaction = transaction; try { gemCommand.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int)); gemCommand.Parameters.Add(new SqlParameter("@Naam", SqlDbType.NVarChar)); gemCommand.CommandText = straatQuery; gemCommand.Parameters["@Id"].Value = straat.StraatID; gemCommand.Parameters["@Naam"].Value = straat.Naam; linkCommand.Parameters.Add(new SqlParameter("@StraatId", SqlDbType.Int)); linkCommand.Parameters.Add(new SqlParameter("@GemeenteId", SqlDbType.Int)); linkCommand.CommandText = linkQuery; linkCommand.Parameters["@StraatId"].Value = straat.StraatID; linkCommand.Parameters["@GemeenteId"].Value = straat.Gemeente.Id; gemCommand.ExecuteNonQuery(); linkCommand.ExecuteNonQuery(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); Console.WriteLine(ex); Console.WriteLine($"straat met ID {straat.StraatID} onsuccesvol toegevoegd"); } finally { connection.Close(); } } }
private static void PrintStraat(Straat s) { var info = Importers.GetGemeenteNaamEnProvincieNaamByGemeenteId(s.GemeenteId); Console.WriteLine(s.Id + ", " + s.StraatNaam + ", " + info.Item1 + ", " + info.Item2); Console.WriteLine("Graaf: " + s.Graaf.Id); Console.WriteLine("Aantal knopen : " + Importers.GetAllKnoopIdsFromStraatId(s.Id).Count); Console.WriteLine("Aantal wegsegmenten : " + s.Graaf.Map.Count); foreach (var segment in s.Graaf.Map) { Console.WriteLine($"Knoop[{segment.BeginKnoop.Id}, [{segment.BeginKnoop.Punt.X}, {segment.BeginKnoop.Punt.Y}]]"); Console.WriteLine($" [segment : {segment.Id}, begin:{segment.BeginKnoop.Id}, eind:{segment.EindKnoop.Id}]"); foreach (var punt in segment.Vertices) { Console.WriteLine($" ({punt.X}, {punt.Y})"); } Console.WriteLine($"Knoop[{segment.EindKnoop.Id}, [{segment.EindKnoop.Punt.X}, {segment.EindKnoop.Punt.Y}]]"); } }
public bool CheckStraat(Straat str) { SqlConnection connection = getConnection(); string query = "SELECT COUNT(*) AS count FROM dbo.straat WHERE Id=@Id"; using (SqlCommand command = connection.CreateCommand()) { command.CommandText = query; SqlParameter paramId = new SqlParameter(); paramId.ParameterName = "@Id"; paramId.DbType = DbType.Int32; paramId.Value = str.StraatID; command.Parameters.Add(paramId); connection.Open(); try { IDataReader reader = command.ExecuteReader(); reader.Read(); int knoopCount = (int)reader["count"]; if (knoopCount == 1) { return(true); } else { return(false); } } catch (Exception ex) { Console.WriteLine(ex); throw new Exception("Incorrect SQL syntax in CheckStraat"); } finally { connection.Close(); } } }
private static HashSet <int> GetAdjacentStraatIdsInGemeente(Straat s) { HashSet <int> adjStratenIds = new HashSet <int>(); List <int> knopen = GetAllKnoopIdsFromStraatId(s.Id); string gemeenteNaam = GetGemeenteNaamEnProvincieNaamByGemeenteId(s.GemeenteId).Item1; List <int> straatIds = GetListStraatIdByGemeenteNaam(gemeenteNaam); foreach (var straatId in straatIds) { if (straatId != s.Id && !adjStratenIds.Contains(straatId)) { foreach (var knoopid in GetAllKnoopIdsFromStraatId(straatId)) { if (knopen.Contains(knoopid)) { adjStratenIds.Add(straatId); } } } } return(adjStratenIds); }
private static StringBuilder PrintGemeenteInfo(Gemeente g) { var sb = new StringBuilder(); double totalLength = 0; double lengteKorsteStraat = double.MaxValue; int indexKorste = 0; double lengteLangsteStraat = 0; int indexLangste = 0; var straten = _stratenProvider.GetStratenByGemId(g.Id); if (straten == null) { sb.Append(" † " + g.Naam + " werd gefuseerd in 2019 †\n\n"); return(sb); } for (int i = 0; i < straten.Count; i++) { var length = Calculator.getLenthOfStraat(straten[i]); totalLength += length; if (length > lengteLangsteStraat) { indexLangste = i; lengteLangsteStraat = length; } if (length < lengteKorsteStraat) { indexKorste = i; lengteKorsteStraat = length; } } Straat korsteStraat = straten[indexKorste]; Straat langsteStraat = straten[indexLangste]; sb.Append(" -" + g.Naam + ": " + straten.Count + " straten || " + totalLength + "\n"); sb.Append(GetSpaces(g.Naam.Length) + " +" + korsteStraat.Id + ", " + korsteStraat.StraatNaam + ", " + lengteKorsteStraat + "\n"); sb.Append(GetSpaces(g.Naam.Length) + " +" + langsteStraat.Id + ", " + langsteStraat.StraatNaam + ", " + lengteLangsteStraat + "\n\n"); return(sb); }
public void AddSegmenten(Straat str) { List <Segment> segmenten = str.GetSegmenten(); for (int i = 0; i < segmenten.Count; i++) { //segmenten kunnen tot meerdere straten behoren, dus perfect mogenlijk dat dit segment al in de databank is toegevoegd door een andere straat if (CheckSegment(segmenten[i])) { //hier moet ik enkel de koppeling tussen het segment en de straat aanmaken if (!CheckSegmentLink(segmenten[i], str.StraatID)) //controle op dubbele entries { LinkSegment(segmenten[i], str.StraatID); } } //als het Segment zich nog niet in de databank bevindt. else { //hier moet ik het segment EN de koppeling aanmaken. AddSegmentWithLink(segmenten[i], str.StraatID); } } }
public static void StraatOpvragenMetStraatNaam_enGemeenteNaam(DataBeheer db, string straatNaam, string gemeenteNaam) { Straat x = db.geefStraat_VanStraatNaam_enGemeenteNaam(straatNaam, gemeenteNaam); Console.WriteLine(x.ToString()); }
public static void StraatOpvragenMetId(DataBeheer db, int straatId) { Straat x = db.geefStraat_VanStraatId(straatId); Console.WriteLine(x.ToString()); }
//Console.WriteLine("testen"); //Belgie belg = TestData(); ////Knoop knoop1 = new Knoop(30, new Punt(2.45, 3.45)); ////dp.FillDataBase(); //} static Belgie TestData() { Punt testPunt1 = new Punt(2.45, 3.45); Punt testPunt2 = new Punt(3.45, 4.45); Punt testPunt3 = new Punt(4.45, 5.45); Punt testPunt4 = new Punt(5.45, 6.45); Punt testPunt5 = new Punt(6.45, 7.45); Knoop knoop1 = new Knoop(30, testPunt1); Knoop knoop2 = new Knoop(40, testPunt2); Knoop knoop3 = knoop1; Knoop knoop4 = new Knoop(50, testPunt3); List <Punt> puntlijstSeg1 = new List <Punt> { testPunt4 }; List <Punt> puntlijstSeg2 = new List <Punt> { testPunt5 }; Segment testSegment1 = new Segment(112, knoop1, knoop2, puntlijstSeg1); Segment testSegment2 = new Segment(113, knoop3, knoop4, puntlijstSeg2); Dictionary <Knoop, List <Segment> > testMap1 = new Dictionary <Knoop, List <Segment> >(); testMap1.Add(knoop1, new List <Segment> { testSegment1 }); testMap1.Add(knoop2, new List <Segment> { testSegment1 }); Dictionary <Knoop, List <Segment> > testMap2 = new Dictionary <Knoop, List <Segment> >(); testMap2.Add(knoop1, new List <Segment> { testSegment2 }); testMap2.Add(knoop2, new List <Segment> { testSegment2 }); Graaf testGraaf1 = new Graaf(250, testMap1); Graaf testGraaf2 = new Graaf(260, testMap2); Gemeente testGemeente = new Gemeente(12, "testGemeente"); Straat testStraat1 = new Straat(10, "TestStraat1", testGraaf1, testGemeente); Straat testStraat2 = new Straat(20, "TestStraat2", testGraaf2, testGemeente); Provincie testProvincie = new Provincie(1, "testProvincie"); testProvincie.VoegGemeenteToe(testGemeente); Belgie belg = new Belgie(new List <Provincie>() { testProvincie }); DataProcessing dp = new DataProcessing(belg); dp.CompletelyFillDataBase(); return(belg); }
private void Read() { GenericParser reader = new GenericParser(Config.Path + "/" + Config.Straatnamen) { ColumnDelimiter = ';', MaxBufferSize = 49600, FirstRowHasHeader = true }; while (reader.Read()) { int id = Convert.ToInt32(reader[0].Trim()); string straatNaam = reader[1].Trim(); if (_idStraatnaam.ContainsKey(id)) { continue; } _idStraatnaam.Add(id, straatNaam); } reader = new GenericParser(Config.Path + "/" + Config.StraatIdGemeenteId) { ColumnDelimiter = ';', MaxBufferSize = 49600, FirstRowHasHeader = true }; int graafIdCounter = 0; while (reader.Read()) { int gemeenteId = Convert.ToInt32(reader[1].Trim()); int straatNaamId = Convert.ToInt32(reader[0].Trim()); Graaf graaf = new Graaf(); graaf.Id = ++graafIdCounter; var map = _wrDataProvider.GetSegmentListByStraatId(straatNaamId); if (map == null) { continue; } graaf.Map = map; string straatnaam = _idStraatnaam.ContainsKey(straatNaamId) ? _idStraatnaam[straatNaamId] : null; if (straatnaam != null) { Straat s = new Straat(straatNaamId, straatnaam, gemeenteId, graaf); if (_gemIdStraten.ContainsKey(gemeenteId)) { _gemIdStraten[gemeenteId].Add(s); } else { _gemIdStraten.Add(gemeenteId, new List <Straat> { s }); } } } }
//--•Als gebruiker wil ik een straat kunnen opvragen op basis van de straatnaam en de gemeentenaam //--wat ik niet makkelijk kon doen in 1 query, heb ik maar in 3 gedaan public Straat geefStraat_VanStraatNaam_enGemeenteNaam(string straatNaam, string gemeenteNaam) { SqlConnection connection = getConnection(); Straat straat = new Straat(); //Maakt de straat aan string queryString = "SELECT DISTINCT s.straatId, straatNaam, gemeenteNaam, provincienaam, s.GraafId" + " FROM Straat s" + " JOIN Gemeente_straat gs ON s.straatId = gs.straatId" + " JOIN Gemeente g ON g.gemeenteId = gs.gemeenteId" + " JOIN Provincie_Gemeente pg ON pg.provincieID = g.gemeenteId" + " JOIN Provincie p ON p.provincieID = pg.provincieID" + " JOIN Graaf_Knoop gk ON s.GraafId = gk.GraafId" + " JOIN Knoop k ON k.knoopId = gk.knoopId" + " JOIN Knoop_Segment ks ON ks.knoopId = k.knoopId" + " JOIN Segment se ON se.SegmentId = ks.SegmentId" + " JOIN Punt pu ON pu.SegmId = se.SegmentId" + " Where s.straatNaam = @gegstraatNaam AND g.gemeenteNaam = @geggemeenteNaam "; using (SqlCommand command = connection.CreateCommand()) { command.CommandText = queryString; SqlParameter paramId = new SqlParameter(); paramId.ParameterName = "@gegstraatNaam"; paramId.DbType = DbType.String; paramId.Value = straatNaam; command.CommandText = queryString; SqlParameter paramId2 = new SqlParameter(); paramId2.ParameterName = "@geggemeenteNaam"; paramId2.DbType = DbType.String; paramId2.Value = gemeenteNaam; command.Parameters.Add(paramId); command.Parameters.Add(paramId2); connection.Open(); try { SqlDataReader dataReader = command.ExecuteReader(); while (dataReader.Read()) { int straatId = (int)dataReader["straatId"]; string sstraatNaam = (string)dataReader["straatNaam"]; string ggemeenteNaam = (string)dataReader["gemeenteNaam"]; string provincienaam = (string)dataReader["provincienaam"]; int GraafId = (int)dataReader["GraafId"]; straat.StraatID = straatId; straat.Straatnaam = sstraatNaam; straat.gemeenteNaam = ggemeenteNaam; straat.ProvincieNaam = provincienaam; straat.GraafId = GraafId; } } catch (Exception ex) { Console.WriteLine(ex); return(null); } finally { connection.Close(); } } //maakt de knopen aan voor deze straat string queryString2 = "SELECT DISTINCT k.knoopId, k.puntX, k.puntY" + " FROM Straat s" + " JOIN Gemeente_straat gs ON s.straatId = gs.straatId" + " JOIN Gemeente g ON g.gemeenteId = gs.gemeenteId" + " JOIN Graaf_Knoop gk ON s.GraafId = gk.GraafId" + " JOIN Knoop k ON k.knoopId = gk.knoopId" + " JOIN Knoop_Segment ks ON ks.knoopId = k.knoopId" + " JOIN Segment se ON se.SegmentId = ks.SegmentId" + " JOIN Punt pu ON pu.SegmId = se.SegmentId" + " Where s.straatNaam = @gegstraatNaam AND g.gemeenteNaam = @geggemeenteNaam "; using (SqlCommand command = connection.CreateCommand()) { command.CommandText = queryString2; SqlParameter paramId = new SqlParameter(); paramId.ParameterName = "@gegstraatNaam"; paramId.DbType = DbType.String; paramId.Value = straatNaam; command.CommandText = queryString2; SqlParameter paramId2 = new SqlParameter(); paramId2.ParameterName = "@geggemeenteNaam"; paramId2.DbType = DbType.String; paramId2.Value = gemeenteNaam; command.Parameters.Add(paramId); command.Parameters.Add(paramId2); connection.Open(); try { SqlDataReader dataReader = command.ExecuteReader(); while (dataReader.Read()) { int knoopId = (int)dataReader["knoopId"]; double puntX = (double)dataReader["puntX"]; double puntY = (double)dataReader["puntY"]; straat.knopen.Add(new Knoop(knoopId, puntX, puntY)); } } catch (Exception ex) { Console.WriteLine(ex); return(null); } finally { connection.Close(); } } //geeft hem segmenten en punten string queryString3 = "SELECT DISTINCT k.knoopId,se.SegmentId, se.BeginKnoopId, se.EindKnoopId, pu.puntX, pu.puntY" + " FROM Straat s" + " JOIN Gemeente_straat gs ON s.straatId = gs.straatId" + " JOIN Gemeente g ON g.gemeenteId = gs.gemeenteId" + " JOIN Graaf_Knoop gk ON s.GraafId = gk.GraafId" + " JOIN Knoop k ON k.knoopId = gk.knoopId" + " JOIN Knoop_Segment ks ON ks.knoopId = k.knoopId" + " JOIN Segment se ON se.SegmentId = ks.SegmentId" + " JOIN Punt pu ON pu.SegmId = se.SegmentId" + " Where s.straatNaam = @gegstraatNaam AND g.gemeenteNaam = @geggemeenteNaam "; using (SqlCommand command = connection.CreateCommand()) { command.CommandText = queryString3; SqlParameter paramId = new SqlParameter(); paramId.ParameterName = "@gegstraatNaam"; paramId.DbType = DbType.String; paramId.Value = straatNaam; command.CommandText = queryString3; SqlParameter paramId2 = new SqlParameter(); paramId2.ParameterName = "@geggemeenteNaam"; paramId2.DbType = DbType.String; paramId2.Value = gemeenteNaam; command.Parameters.Add(paramId); command.Parameters.Add(paramId2); connection.Open(); try { SqlDataReader dataReader = command.ExecuteReader(); while (dataReader.Read()) { int knoopId = (int)dataReader["knoopId"]; int SegmentId = (int)dataReader["SegmentId"]; int BeginKnoopId = (int)dataReader["BeginKnoopId"]; int EindKnoopId = (int)dataReader["EindKnoopId"]; double puntX = (double)dataReader["puntX"]; double puntY = (double)dataReader["puntY"]; //als de knoop de segment nog niet heeft dan maak je die aan en voeg je punt toe if (!straat.knopen.Where(k => k.knoopID.Equals(knoopId)).FirstOrDefault().segmenten.Any(s => s.segmentID.Equals(SegmentId))) { straat.knopen.Where(k => k.knoopID.Equals(knoopId)) .FirstOrDefault().segmenten.Add(new Segment(SegmentId, BeginKnoopId, EindKnoopId)); straat.knopen.Where(k => k.knoopID.Equals(knoopId)) .FirstOrDefault().segmenten.Where(s => s.segmentID.Equals(SegmentId)).FirstOrDefault() .punten_verticles.Add(new Punt(puntX, puntY)); } //als de knoop de segment wel al heeft, dan voeg je enkel de punt toe else { straat.knopen.Where(k => k.knoopID.Equals(knoopId)) .FirstOrDefault().segmenten.Where(s => s.segmentID.Equals(SegmentId)).FirstOrDefault() .punten_verticles.Add(new Punt(puntX, puntY)); } } } catch (Exception ex) { Console.WriteLine(ex); return(null); } finally { connection.Close(); } } return(straat); }
// --•Als gebruiker wil ik alle straten kunnen opvragen die grenzen aan een opgegeven straat (straatID). public List <Straat> stratenDieGrenzenZoeken(int straatid) { List <Straat> stratenlijt = new List <Straat>(); SqlConnection connection = getConnection(); //Maakt de straten aan met enkel hun s.straatId, straatNaam, gemeenteNaam, provincienaam, s.GraafId" string queryString = "SELECT DISTINCT s.straatId, straatNaam, gemeenteNaam, provincienaam, s.GraafId" + " FROM Straat s" + " JOIN Gemeente_straat gs ON s.straatId = gs.straatId" + " JOIN Gemeente g ON g.gemeenteId = gs.gemeenteId" + " JOIN Provincie_Gemeente pg ON pg.provincieID = g.gemeenteId" + " JOIN Provincie p ON p.provincieID = pg.provincieID" + " JOIN Graaf_Knoop gk ON s.GraafId = gk.GraafId" + " JOIN Knoop k ON k.knoopId = gk.knoopId" + " JOIN Knoop_Segment ks ON ks.knoopId = k.knoopId" + " JOIN Segment se ON se.SegmentId = ks.SegmentId" + " JOIN Punt pu ON pu.SegmId = se.SegmentId" + " Where se.linksStraatnaamID = @gegstraatId OR se.rechtsStraatnaamID = @gegstraatId; "; using (SqlCommand command = connection.CreateCommand()) { command.CommandText = queryString; SqlParameter paramId = new SqlParameter(); paramId.ParameterName = "@gegstraatId"; paramId.DbType = DbType.Int32; paramId.Value = straatid; command.Parameters.Add(paramId); connection.Open(); try { SqlDataReader dataReader = command.ExecuteReader(); while (dataReader.Read()) { Straat straat = new Straat(); int straatId = (int)dataReader["straatId"]; string straatNaam = (string)dataReader["straatNaam"]; string gemeenteNaam = (string)dataReader["gemeenteNaam"]; string provincienaam = (string)dataReader["provincienaam"]; int GraafId = (int)dataReader["GraafId"]; straat.StraatID = straatId; straat.Straatnaam = straatNaam; straat.gemeenteNaam = gemeenteNaam; straat.ProvincieNaam = provincienaam; straat.GraafId = GraafId; stratenlijt.Add(straat); } } catch (Exception ex) { Console.WriteLine(ex); return(null); } finally { connection.Close(); } } //stratenlijst bevat nu de nodige straten, hun gegevens moeten wel nog worden opgevuld //hiervoor heb ik een for en herbruik ik queries voor een straatopvragen met de straatId for (int i = 0; i < stratenlijt.Count(); i++) { //maakt de knopen aan voor deze straat string queryString2 = "SELECT DISTINCT k.knoopId, k.puntX, k.puntY FROM Straat JOIN graaf g ON g.GraafId = Straat.graafID JOIN Graaf_Knoop gk ON g.GraafId = gk.GraafId JOIN Knoop k ON k.knoopId = gk.knoopId JOIN Knoop_Segment ks ON ks.knoopId = k.knoopId JOIN Segment se ON se.SegmentId = ks.SegmentId JOIN Punt p ON p.SegmId = se.SegmentId Where Straat.straatId = @gegstraatId; "; using (SqlCommand command = connection.CreateCommand()) { command.CommandText = queryString2; SqlParameter paramId = new SqlParameter(); paramId.ParameterName = "@gegstraatId"; paramId.DbType = DbType.Int32; paramId.Value = stratenlijt[i].StraatID; command.Parameters.Add(paramId); connection.Open(); try { SqlDataReader dataReader = command.ExecuteReader(); while (dataReader.Read()) { int knoopId = (int)dataReader["knoopId"]; double puntX = (double)dataReader["puntX"]; double puntY = (double)dataReader["puntY"]; stratenlijt[i].knopen.Add(new Knoop(knoopId, puntX, puntY)); } } catch (Exception ex) { Console.WriteLine(ex); return(null); } finally { connection.Close(); } } //geeft hem segmenten en punten string queryString3 = "SELECT DISTINCT k.knoopId,se.SegmentId, se.BeginKnoopId, se.EindKnoopId, p.puntX, p.puntY" + " FROM Straat s" + " JOIN graaf g ON g.GraafId = s.graafID" + " JOIN Graaf_Knoop gk ON g.GraafId = gk.GraafId" + " JOIN Knoop k ON k.knoopId = gk.knoopId" + " JOIN Knoop_Segment ks ON ks.knoopId = k.knoopId" + " JOIN Segment se ON se.SegmentId = ks.SegmentId" + " JOIN Punt p ON p.SegmId = se.SegmentId" + " Where s.straatId = @gegstraatId; "; using (SqlCommand command = connection.CreateCommand()) { command.CommandText = queryString3; SqlParameter paramId = new SqlParameter(); paramId.ParameterName = "@gegstraatId"; paramId.DbType = DbType.Int32; paramId.Value = stratenlijt[i].StraatID; command.Parameters.Add(paramId); connection.Open(); try { SqlDataReader dataReader = command.ExecuteReader(); while (dataReader.Read()) { int knoopId = (int)dataReader["knoopId"]; int SegmentId = (int)dataReader["SegmentId"]; int BeginKnoopId = (int)dataReader["BeginKnoopId"]; int EindKnoopId = (int)dataReader["EindKnoopId"]; double puntX = (double)dataReader["puntX"]; double puntY = (double)dataReader["puntY"]; //als de knoop de segment nog niet heeft dan maak je die aan en voeg je punt toe if (!stratenlijt[i].knopen.Where(k => k.knoopID.Equals(knoopId)).FirstOrDefault().segmenten.Any(s => s.segmentID.Equals(SegmentId))) { stratenlijt[i].knopen.Where(k => k.knoopID.Equals(knoopId)) .FirstOrDefault().segmenten.Add(new Segment(SegmentId, BeginKnoopId, EindKnoopId)); stratenlijt[i].knopen.Where(k => k.knoopID.Equals(knoopId)) .FirstOrDefault().segmenten.Where(s => s.segmentID.Equals(SegmentId)).FirstOrDefault() .punten_verticles.Add(new Punt(puntX, puntY)); } //als de knoop de segment wel al heeft, dan voeg je enkel de punt toe else { stratenlijt[i].knopen.Where(k => k.knoopID.Equals(knoopId)) .FirstOrDefault().segmenten.Where(s => s.segmentID.Equals(SegmentId)).FirstOrDefault() .punten_verticles.Add(new Punt(puntX, puntY)); } } } catch (Exception ex) { Console.WriteLine(ex); return(null); } finally { connection.Close(); } } } return(stratenlijt); }
public bool VoegStraatToe(Straat toeTeVoegen) { return(StratenBeheer.VoegStraatToe(toeTeVoegen)); }
public static List <Provincie> Run() { List <String> FileReader; // Lees provincies vlaanderen List <int> ProvincieIds_Vlaanderen = new List <int>(); FileReader = ReadFile(pathProvincieIDsVlaanderen, false); foreach (string s in FileReader) { string[] temps = s.Split(','); foreach (string id in temps) { ProvincieIds_Vlaanderen.Add(int.Parse(id)); } } // Maak provincie, link gemeenten List <Provincie> Provincies_Vlaanderen = new List <Provincie>(); // Couple int1 = gemeenteId; Couple int2 = provincieId List <Couple> GemeentenPerProvincie = new List <Couple>(); FileReader = ReadFile(pathProvincieInfo); foreach (string s in FileReader) { string[] temps = s.Split(';'); if (temps[2].Equals("nl")) { int provincieId = int.Parse(temps[1]); if (ProvincieIds_Vlaanderen.Any(p => p.Equals(provincieId))) { // Save gemeenteId's GemeentenPerProvincie.Add(new Couple { Int1 = int.Parse(temps[0]), Int2 = provincieId }); // Save provincie if (!Provincies_Vlaanderen.Any(p => p.ProvincieID.Equals(provincieId))) { Console.WriteLine("Creating Provincie: " + temps[3]); Provincies_Vlaanderen.Add(new Provincie() { ProvincieID = provincieId, ProvincieNaam = temps[3] }); } } } } // Maak gemeenten List <Gemeente> Gemeentes_Vlaanderen = new List <Gemeente>(); FileReader = ReadFile(pathWRgemeentenaam); foreach (string s in FileReader) { string[] temps = s.Split(';'); if (temps[2].Equals("nl")) { // If Gemeente is in Vlaanderen Couple gemeenteProvincie = GemeentenPerProvincie.FirstOrDefault(c => c.Int1.Equals(int.Parse(temps[1]))); if (!(gemeenteProvincie is null)) { // Save gemeente Console.WriteLine("Creating Gemeente: " + temps[3]); Gemeente gemeente = new Gemeente() { GemeenteID = gemeenteProvincie.Int1, GemeenteNaam = temps[3] }; Gemeentes_Vlaanderen.Add(gemeente); Provincies_Vlaanderen.First(p => p.ProvincieID.Equals(gemeenteProvincie.Int2)).Gemeenten.Add(gemeente); } } } // Lees koppeling straten // Couple int1 = straatId; Couple int2 = gemeenteId List <Couple> StratenPerGemeentes = new List <Couple>(); FileReader = ReadFile(pathWRGemeenteID); foreach (string s in FileReader) { string[] temps = s.Split(';'); int straatID = int.Parse(temps[0]); int gemeenteID = int.Parse(temps[1]); if (GemeentenPerProvincie.Any(c => c.Int1.Equals(gemeenteID))) { StratenPerGemeentes.Add(new Couple() { Int1 = straatID, Int2 = gemeenteID }); } } // Maak straten List <Straat> Straten_Vlaanderen = new List <Straat>(); FileReader = ReadFile(pathstraatnamen); foreach (string s in FileReader) { string[] temps = s.Split(';'); int straatID = int.Parse(temps[0]); string straatnaam = temps[1].Trim(); Couple straatGemeente = StratenPerGemeentes.FirstOrDefault(c => c.Int1.Equals(straatID)); if (!(straatGemeente is null)) { Console.WriteLine("Creating Straat: " + straatnaam); Straat straat = new Straat() { StraatID = straatID, Straatnaam = straatnaam }; Straten_Vlaanderen.Add(straat); Gemeentes_Vlaanderen.FirstOrDefault(g => g.GemeenteID.Equals(straatGemeente.Int2)).Straten.Add(straat); } } // Segmenten Console.WriteLine("Creating segmenten"); FileReader = ReadFile(pathWRdata); foreach (string s in FileReader) { string[] temps = s.Split(';'); int segmentId = int.Parse(temps[0]); string geo = temps[1].Remove(0, 12).Remove(temps[1].Length - 12 - 2); int straatIdLinks = int.Parse(temps[6]); int straatIdRechts = int.Parse(temps[7]); if (!(straatIdLinks.Equals(-9) && straatIdRechts.Equals(-9))) { Straat straatLinks = Straten_Vlaanderen.FirstOrDefault(s => s.StraatID.Equals(straatIdLinks)); if (!(straatLinks is null)) { List <Punt> punten = new List <Punt>(); foreach (string punt in geo.Split(", ")) { string[] puntSplit = punt.Split(" "); punten.Add(new Punt(double.Parse(puntSplit[0]), double.Parse(puntSplit[1]))); } Segment segment = new Segment() { SegmentID = segmentId, Beginknoop = new Knoop() { Punt = punten.First() }, Eindknoop = new Knoop() { Punt = punten.Last() }, Vertices = punten }; straatLinks.Graaf.parsList(segment); } } } // Toon rapport #region rapport Console.WriteLine( "\n\n" + $"Totaal aantal straten: {Straten_Vlaanderen.Count} \n\n" + $"Aantal straten per provincie: " ); foreach (Provincie prov in Provincies_Vlaanderen) { Console.WriteLine($" - {prov.ProvincieNaam}: {prov.Gemeenten.Sum(g => g.Straten.Count)}"); } foreach (Provincie prov in Provincies_Vlaanderen) { Console.WriteLine($"\nStraatInfo {prov.ProvincieNaam}:"); foreach (Gemeente gem in prov.Gemeenten) { Console.WriteLine( $" - {gem.GemeenteNaam}: Aantal straten = {gem.Straten.Count}, Totale lengte = {gem.Straten.Sum(s => s.Graaf.ListMap.Count)}\n" + $" - Kortste straat: {gem.Straten.Min(s => s.Graaf.ListMap.Count)}\n" + $" - Langste straat: {gem.Straten.Max(s => s.Graaf.ListMap.Count)}" ); } } #endregion return(Provincies_Vlaanderen); }
public static void Run() { using (ProvinciesContext ctx = new ProvinciesContext()) { dc = new DomainController(ctx); string antwoord = ""; do { Console.Clear(); Console.WriteLine("Welk wilt u doen? "); Console.WriteLine("Geef ID's van een gemeente terug (0)"); Console.WriteLine("Geef straat op basis van zijn ID (1)"); Console.WriteLine("Geef straat op basis van zijn Naam (2)"); Console.WriteLine("Geef een lijst van straatnamen op basis van een gemeente ID (3)"); Console.WriteLine("Geef een verslach van een provincie op basis van een provincie ID (4)"); antwoord = Console.ReadLine(); if (antwoord == "0") { Console.WriteLine("Geef de ID van de gemeente:"); antwoord = Console.ReadLine(); ListToString(dc.GeefLijstStraatIDsVanGemeente(int.Parse(antwoord))); } if (antwoord == "1") { Console.WriteLine("Geef de ID van de straat:"); antwoord = Console.ReadLine(); Straat tempStraat = dc.GeefStraatOpBasisVanID(int.Parse(antwoord)); if (tempStraat is null) { Console.WriteLine("Deze straat bestaat niet."); } else { Console.WriteLine(tempStraat.ToString()); } } if (antwoord == "2") { Console.WriteLine("Geef de naam van de straat:"); antwoord = Console.ReadLine(); Straat tempStraat = dc.GeefStraatOpBasisVanNaam(antwoord); if (tempStraat is null) { Console.WriteLine("Deze straat bestaat niet."); } else { Console.WriteLine(tempStraat.ToString()); } } if (antwoord == "3") { Console.WriteLine("Geef de naam van de Gemeente waar u de straten van wilt zien:"); antwoord = Console.ReadLine(); List <string> tempStraten = dc.GeefLijstVanStraatNamenVanGemeente(int.Parse(antwoord)); if (tempStraten is null) { Console.WriteLine("Deze straat bestaat niet."); } else { foreach (string straat in tempStraten) { Console.WriteLine(straat.TrimEnd()); } } } if (antwoord == "4") { Console.WriteLine("Geef de ID van de provincie van wie u een verslag wilt hebben:"); antwoord = Console.ReadLine(); string verslach = dc.GeefRaportVanProvincie(int.Parse(antwoord)); if (verslach is null) { Console.WriteLine("Deze provincie bestaat niet."); } else { Console.WriteLine(verslach); } } Console.ReadLine(); } while (antwoord != "stop"); } }
public Straat ReturnStraatInGemeente(int straatId, Gemeente gemeente) { string straatQuery = "SELECT * FROM dbo.straat WHERE Id=@StraatId"; string segmentQuery = "SELECT * FROM dbo.segment JOIN straatSegmenten ON straatSegmenten.SegmentId = segment.Id WHERE straatId = @StraatId"; string knoopQuery = "SELECT punt.X,punt.Y FROM dbo.knoop JOIN punt ON knoop.PuntId = Punt.Id WHERE knoop.Id = @KnoopId"; string puntQuery = "SELECT * FROM dbo.punt JOIN dbo.vertices ON punt.Id=vertices.PuntId WHERE vertices.segmentId = @segmentId ORDER BY vertices.PuntId"; SqlConnection connection = getConnection(); using (SqlCommand puntCommand = connection.CreateCommand()) using (SqlCommand knoopCommand = connection.CreateCommand()) using (SqlCommand segmentCommand = connection.CreateCommand()) using (SqlCommand straatCommand = connection.CreateCommand()) { straatCommand.CommandText = straatQuery; straatCommand.Parameters.Add(new SqlParameter("@StraatId", SqlDbType.Int)); straatCommand.Parameters["@StraatId"].Value = straatId; segmentCommand.CommandText = segmentQuery; segmentCommand.Parameters.Add(new SqlParameter("@StraatId", SqlDbType.Int)); segmentCommand.Parameters["@StraatId"].Value = straatId; knoopCommand.CommandText = knoopQuery; knoopCommand.Parameters.Add(new SqlParameter("@KnoopId", SqlDbType.Int)); puntCommand.CommandText = puntQuery; puntCommand.Parameters.Add(new SqlParameter("@SegmentId", SqlDbType.Int)); connection.Open(); try { List <Segment> segmenten = new List <Segment>(); SqlDataReader reader = straatCommand.ExecuteReader(); reader.Read(); string straatnaam = (string)reader["Naam"]; reader.Close(); reader = segmentCommand.ExecuteReader(); List <int> segmentIds = new List <int>(); List <int> beginKnoopIds = new List <int>(); List <int> eindKnoopIds = new List <int>(); while (reader.Read()) { segmentIds.Add((int)reader["Id"]); beginKnoopIds.Add((int)reader["BeginKnoopId"]); eindKnoopIds.Add((int)reader["EindKnoopId"]); } reader.Close(); //hier beginnen we te loopen om onze segmenten op te bouwen. for (int i = 0; i < segmentIds.Count; i++) { knoopCommand.Parameters["@KnoopId"].Value = beginKnoopIds[i]; reader = knoopCommand.ExecuteReader(); reader.Read(); double beginX = (double)reader["X"]; double beginY = (double)reader["Y"]; reader.Close(); knoopCommand.Parameters["@KnoopId"].Value = eindKnoopIds[i]; reader = knoopCommand.ExecuteReader(); reader.Read(); double eindX = (double)reader["X"]; double eindY = (double)reader["Y"]; reader.Close(); puntCommand.Parameters["@SegmentId"].Value = segmentIds[i]; reader = puntCommand.ExecuteReader(); Knoop beginKnoop = new Knoop(beginKnoopIds[i], new Punt(beginX, beginY)); Knoop eindKnoop = new Knoop(eindKnoopIds[i], new Punt(eindX, eindY)); List <Punt> punten = new List <Punt>() { beginKnoop.SegmentPunt }; while (reader.Read()) { punten.Add(new Punt((double)reader["X"], (double)reader["Y"])); } reader.Close(); punten.Add(eindKnoop.SegmentPunt); segmenten.Add(new Segment(segmentIds[i], beginKnoop, eindKnoop, punten)); } Graaf tempGraaf = BouwGraaf(segmenten, straatId); Straat returnStraat = new Straat(straatId, straatnaam, tempGraaf, gemeente); return(returnStraat); } catch (Exception ex) { Console.WriteLine(ex); return(null); } finally { connection.Close(); } } }
//extra ter vervollediging public Gemeente ReturnGemeenteVoorGemeenteNaam(string gemeenteNaam) { string gemeenteQuery = "SELECT * FROM dbo.gemeente WHERE Naam=@gemeenteNaam"; string straatQuery = "SELECT * FROM dbo.straat JOIN gemeenteStraatLink ON gemeenteStraatLink.StraatId = straat.Id WHERE gemeenteStraatLink.GemeenteId = @GemeenteId"; string segmentQuery = "SELECT * FROM dbo.segment JOIN straatSegmenten ON straatSegmenten.SegmentId = segment.Id WHERE straatId = @StraatId"; string knoopQuery = "SELECT punt.X,punt.Y FROM dbo.knoop JOIN punt ON knoop.PuntId = Punt.Id WHERE knoop.Id = @KnoopId"; string puntQuery = "SELECT * FROM dbo.punt JOIN dbo.vertices ON punt.Id=vertices.PuntId WHERE vertices.segmentId = @segmentId"; SqlConnection connection = getConnection(); using (SqlCommand knoopCommand = connection.CreateCommand()) using (SqlCommand puntCommand = connection.CreateCommand()) using (SqlCommand segmentCommand = connection.CreateCommand()) using (SqlCommand gemeenteCommand = connection.CreateCommand()) using (SqlCommand straatCommand = connection.CreateCommand()) { gemeenteCommand.CommandText = gemeenteQuery; gemeenteCommand.Parameters.Add(new SqlParameter("@GemeenteNaam", SqlDbType.NVarChar)); gemeenteCommand.Parameters["@GemeenteNaam"].Value = gemeenteNaam; straatCommand.CommandText = straatQuery; straatCommand.Parameters.Add(new SqlParameter("@GemeenteId", SqlDbType.Int)); segmentCommand.CommandText = segmentQuery; segmentCommand.Parameters.Add(new SqlParameter("@StraatId", SqlDbType.Int)); knoopCommand.CommandText = knoopQuery; knoopCommand.Parameters.Add(new SqlParameter("@KnoopId", SqlDbType.Int)); puntCommand.CommandText = puntQuery; puntCommand.Parameters.Add(new SqlParameter("@SegmentId", SqlDbType.Int)); connection.Open(); try { SqlDataReader reader = gemeenteCommand.ExecuteReader(); reader.Read(); int gemeenteId = (int)reader["Id"]; reader.Close(); List <int> straatIds = new List <int>(); List <string> straatNamen = new List <string>(); straatCommand.Parameters["@GemeenteId"].Value = gemeenteId; reader = straatCommand.ExecuteReader(); Gemeente gemeente = new Gemeente(gemeenteId, gemeenteNaam); while (reader.Read()) { straatIds.Add((int)reader["Id"]); straatNamen.Add((string)reader["Naam"]); } reader.Close(); for (int index = 0; index < straatIds.Count; index++) { segmentCommand.Parameters["@StraatId"].Value = straatIds[index]; reader = segmentCommand.ExecuteReader(); List <Segment> segmenten = new List <Segment>(); List <int> segmentIds = new List <int>(); List <int> beginKnoopIds = new List <int>(); List <int> eindKnoopIds = new List <int>(); while (reader.Read()) { segmentIds.Add((int)reader["Id"]); beginKnoopIds.Add((int)reader["BeginKnoopId"]); eindKnoopIds.Add((int)reader["EindKnoopId"]); } reader.Close(); //hier beginnen we te loopen om onze segmenten op te bouwen. for (int i = 0; i < segmentIds.Count; i++) { knoopCommand.Parameters["@KnoopId"].Value = beginKnoopIds[i]; reader = knoopCommand.ExecuteReader(); reader.Read(); double beginX = (double)reader["X"]; double beginY = (double)reader["Y"]; reader.Close(); knoopCommand.Parameters["@KnoopId"].Value = eindKnoopIds[i]; reader = knoopCommand.ExecuteReader(); reader.Read(); double eindX = (double)reader["X"]; double eindY = (double)reader["Y"]; reader.Close(); puntCommand.Parameters["@SegmentId"].Value = segmentIds[i]; reader = puntCommand.ExecuteReader(); List <Punt> punten = new List <Punt>(); while (reader.Read()) { punten.Add(new Punt((double)reader["X"], (double)reader["Y"])); } reader.Close(); Knoop beginKnoop = new Knoop(beginKnoopIds[i], new Punt(beginX, beginY)); Knoop eindKnoop = new Knoop(eindKnoopIds[i], new Punt(eindX, eindY)); segmenten.Add(new Segment(segmentIds[i], beginKnoop, eindKnoop, punten)); } Graaf tempGraaf = BouwGraaf(segmenten, straatIds[index]); Straat tempstraat = new Straat(straatIds[index], straatNamen[index], tempGraaf, gemeente); } return(gemeente); } catch (Exception ex) { Console.WriteLine(ex); return(null); } finally { connection.Close(); } } }