//private Tram binnenrijdendeTram; /* public void deelTramIn(Tram tram) * { * DatabaseController dc = new DatabaseController(); * * alleSporen = dc.GetAllSporen(); * * int spoorCounter = 0; * * foreach (Spoor spoor in alleSporen) * { * foreach (Sector sector in spoor.Sectoren) * { * if(sector.Status == SectorStatus.bezet) * { * // Als een spoor bezet is dan +1 * spoorCounter += 1; * } * } * } * * if(spoorCounter == 0) * { * //Alle sporen zijn leeg * tram.Status = 2; * dc.UpdateTram(tram); * alleSporen.First().Sectoren.First().Tram = tram; * alleSporen.First().Sectoren.First().Status = SectorStatus.bezet; * dc.UpdateSector(alleSporen.First().Sectoren.First()); * alleSporen.First().SpoorStatus = true; * dc.UpdateSpoor(alleSporen.First()); * return; * } * else * { * foreach (Spoor spoor in alleSporen) * { * //spoorStatus = true, spoor is bezet * // TODO: er zijn geen sporen die bezet zijn waar de tram op geplaatst kan worden, plaats m op een leeg spoor. * if(spoor.SpoorStatus == true) * { * foreach (Sector sector in spoor.Sectoren) * { * int sectorIndex = spoor.Sectoren.IndexOf(sector); * if(sector.Status == SectorStatus.bezet) * { * if (Convert.ToInt32(sector.Tram.VertrekTijd) >= Convert.ToInt32(tram.VertrekTijd)) * { * //De tram vertrekt eerder en kan er dus voor geplaatst worden * if (spoor.Sectoren.Count > (sectorIndex + 1)) * { * if (spoor.Sectoren[sectorIndex + 1].Status != SectorStatus.bezet) * { * tram.Status = 2; * dc.UpdateTram(tram); * spoor.Sectoren[sectorIndex + 1].Tram = tram; * spoor.Sectoren[sectorIndex + 1].Status = SectorStatus.bezet; * dc.UpdateSector(spoor.Sectoren[sectorIndex + 1]); * return; * } * } * else * { * sectorIndex = 0; * } * } * //De tram vertrekt later dan de tram die er al staat, zoek een ander spoor * } * } * } * } * * foreach (Spoor spoor in alleSporen) * { * if(spoor.SpoorStatus == false) * { * spoor.Sectoren.First().Status = SectorStatus.bezet; * tram.Status = 2; * dc.UpdateTram(tram); * spoor.Sectoren.First().Tram = tram; * dc.UpdateSector(spoor.Sectoren.First()); * spoor.SpoorStatus = true; * dc.UpdateSpoor(spoor); * return; * } * } * } * }*/ /// <summary> /// Deelt de tram in op het spoor. /// </summary> /// <param name="tram"></param> public void DeelTramInBeter(Tram tram) { DatabaseController dc = new DatabaseController(); //Maakt een verbinding met de database via de databaseklasse. alleSporen = dc.GetAllSporen(); //Verkrijgt alle sporen. int controleer = ControleerTram(tram); //Controlleert of de tram nog moet worden schoongemaakt of gerepareerd. if (controleer == 2) //indien de tram nog moet worden gerepareert deel de tram dan in op het repartatiespoor. { DeelTramInOpReparatieSpoor(tram, dc); } else if (controleer == 1) //indien de tram nog moet worden schoongemaakt deel de tram dan in op een schoonmaakspoor. { DeelTramInOpSchoonmaakSpoor(tram, dc); } else if (controleer == 0) //Deelt de tram in op het spoor volgens ons indelingsalgoritme. { DeelTramInVolgensAlgoritme(tram, dc); } else if (controleer == 3) { DeelTramInOpReservering(tram, dc); } }
/// <summary> /// Verkrijgt alle sporen /// </summary> /// <returns>Een lijst met alle sporen</returns> public List <Spoor> GetAllSporen() { DatabaseController dc = new DatabaseController(); sporen = dc.GetAllSporen(); return(sporen); }
/// <summary> /// Verkrijgt een vrij spoor waar een tram op schoongemaakt kan worden. /// </summary> /// <returns>Retourneert een leeg schoonmaak spoor</returns> public Spoor VerkrijgVrijSchoonmaakSpoor() { DatabaseController dc = new DatabaseController(); foreach (Spoor s in dc.GetAllSporen()) { if (s.SpoorStatus == SpoorStatus.Leeg && s.spoorType == SpoorType.Schoonmaak && !s.SectorGeblokkeerd()) //Wanneer een spoor leeg is, er geen sector op geblokeerd wordt en het spoor van het type schoonmaak is, retourneer dan dat spoor. { return(s); } } return(null); }