public void DeelTramInOpReservering(Tram tram, DatabaseController dc) { foreach (Reservering reservering in dc.GetAllReservering()) { if (reservering.Tram.TramNummer == tram.TramNummer) { foreach (Spoor spoor in alleSporen) { if (reservering.Sector.SpoorNummer == spoor.SpoorNummer && reservering.Sector.Status == SectorStatus.leeg) { spoor.SpoorStatus = SpoorStatus.InGebruik; dc.UpdateSpoor(spoor); reservering.Sector.Status = SectorStatus.bezet; reservering.Sector.Tram = tram; dc.UpdateSector(reservering.Sector); tram.Status = TramStatus.Geparkeerd; dc.UpdateTram(tram); } } } } }
/// <summary> /// Deelt de tram in op een spoor dat voldoet aan de eisen van ons algoritme. /// </summary> /// <param name="tram">De tram die ingedeelt moet worden</param> /// <param name="dc">De databasecontroller die aangemaakt wordt in de DeelTramBeterIn methode</param> public void DeelTramInVolgensAlgoritme(Tram tram, DatabaseController dc) { for (int x = 0; x < alleSporen.Count; x++) //doorloopt alle sporen. { if (alleSporen[x].SpoorStatus == SpoorStatus.InGebruik) //wanneer het spoor in gebruik is. { for (int i = 0; i < alleSporen[x].Sectoren.Count; i++) //doorloopt alle sectoren van het spoor. { if (alleSporen[x].Sectoren[i].Status == SectorStatus.leeg && alleSporen[x].Sectoren[i].IsGereserveerdCheck(dc.GetAllReservering()) == false) //indien er nog een sector vrij is. { if (i - 1 != -1 && alleSporen[x].Sectoren[i - 1].Tram != null) { if (Convert.ToInt32(alleSporen[x].Sectoren[i - 1].Tram.VertrekTijd) <= Convert.ToInt32(tram.VertrekTijd)) //indien de vertrektijd van de laatste tram op het spoor vroeger is dan van de parameter tram. { alleSporen[x].Sectoren[i].Status = SectorStatus.bezet; alleSporen[x].Sectoren[i].Tram = tram; dc.UpdateSector(alleSporen[x].Sectoren[i]); //de sector wordt geÜpdate tram.Status = TramStatus.Geparkeerd; dc.UpdateTram(tram); //de tram word geüpdate. return; } else { break; } } } } } else { alleSporen[x].SpoorStatus = SpoorStatus.InGebruik; dc.UpdateSpoor(alleSporen[x]); //spoor wordt geüpdate. alleSporen[x].Sectoren.First().Status = SectorStatus.bezet; alleSporen[x].Sectoren.First().Tram = tram; dc.UpdateSector(alleSporen[x].Sectoren.First()); //de sector wordt geÜpdate tram.Status = TramStatus.Geparkeerd; dc.UpdateTram(tram); //de tram word geüpdate. return; } } }