コード例 #1
0
        /// <summary>
        /// Voegt een tram toe aan de database
        /// </summary>
        /// <param name="tramNummer">Het nummer van de tram die je wilt toevoegen</param>
        /// <param name="vertrektijd">De vertrektijd van de tram die je wilt toevoegen</param>
        /// <param name="type">Het soort tram dat je wilt toevoegen</param>
        public bool TramToevoegen(int tramNummer, DateTime vertrektijd, TramType type)
        {
            DatabaseController dc = new DatabaseController();
            Tram tram             = new Tram(huidigeRemise, type, vertrektijd, tramNummer, 1, "", false, false, true, false);

            if (dc.AddTram(tram))
            {
                return(true);
            }
            else
            {
                throw new TramToevoegException();
            }
        }
コード例 #2
0
        /// <summary>
        /// Deelt de tram in op het spoor.
        /// </summary>
        /// <param name="tram"></param>
        public static void DeelTramInBeter(Tram tram)
        {
            if (tram == null)
            {
                throw new InUitRijException("U probeert een leeg tram object in te delen");
            }
            DatabaseController dc = new DatabaseController();               //Maakt een verbinding met de database via de databaseklasse.

            alleSporen = dc.GetAllSporen(huidigeRemise);                    //Verkrijgt alle sporen.

            DeelTramIn deelTramIn = IndelingMethodes[ControleerTram(tram)]; //Voegt een methode toe aan de delegate afhankelijk van de stauts van de tram.

            deelTramIn(tram, dc);                                           //Voert DeelTramInOpOnderhoudsSpoor of DeelTramInVolgensAlgoritme afhankelijk van de status van de Tram.
        }
コード例 #3
0
        /// <summary>
        /// Blokeert/deblokkeert een sector.
        /// </summary>
        /// <param name="spoorNummer"></param>
        /// <param name="sectorNummer"></param>
        public void ToggleSector(Sector sector) //TODO: Exception geven wanneer het niet lukt. Dit in het form afhandelen.
        {
            if (sector.Tram != null)
            {
                throw new ToggleSectorException("Er staat nog een tram op de sector.");
            }
            sector.Geblokkeerd = !sector.Geblokkeerd;
            sector.Beschikbaar = !sector.Beschikbaar;
            DatabaseController dc = new DatabaseController();

            if (!dc.UpdateSector(sector, huidigeRemise))
            {
                throw new ToggleSectorException("De sector kon niet worden geblokkeerd/gedeblokkeerd!");
            }
        }
コード例 #4
0
        /// <summary>
        /// Haalt een lijst op van alle trams die niet defect zijn.
        /// </summary>
        /// <returns>Retourneert een lijst met niet defecte trams.</returns>
        public List <Tram> GetNietDefecteTrams()
        {
            DatabaseController dc    = new DatabaseController();
            List <Tram>        trams = dc.GetAllTrams(huidigeRemise);

            foreach (Onderhoud o in GetAllOnderhoud())
            {
                foreach (Tram tram in trams.ToList())
                {
                    if (o.Tram.TramNummer == tram.TramNummer && (o.TypeOnderhoud == TypeOnderhoud.KleineServiceBeurt || o.TypeOnderhoud == TypeOnderhoud.GroteServiceBeurt))
                    {
                        trams.Remove(tram);
                    }
                }
            }
            return(trams);
        }
コード例 #5
0
 /// <summary>
 /// Deelt de tram in volgens het normaal algrotime.
 /// </summary>
 /// <param name="tram"></param>
 /// <param name="dc"></param>
 public static void DeelTramInVolgensAlgoritme(Tram tram, DatabaseController dc) //ToDo: Rekening houden met verbinding.
 {
     for (int x = 0; x < alleSporen.Count; x++)
     {
         if (alleSporen[x].Beschikbaar && alleSporen[x].SpoorType == SpoorType.Normaal) //TODO: spoor op niet beschikbaar zetten wanneer de laatste sector word gewijzigt naar niet beschikbaar of geblokkeerd.
         {
             for (int i = 0; i < alleSporen[x].Sectoren.Count; i++)
             {
                 if (alleSporen[x].Sectoren[i].Beschikbaar && !alleSporen[x].Sectoren[i].Geblokkeerd && alleSporen[x].GenoegVrijeSporen())
                 {
                     //Kijken of vertrektijd met vorige kan
                     //Kijken of vertrektijd met reservering kan
                     if (i - 1 != -1 && alleSporen[x].Sectoren[i - 1].Tram != null)
                     {
                         if (alleSporen[x].Sectoren[i - 1].Tram.Vertrektijd <= tram.Vertrektijd)
                         {
                             //plaats tram, TODO: Aparte MEthode volgende stuk
                             alleSporen[x].Sectoren[i].PlaatsTram(tram);
                             if (alleSporen[x].Sectoren[i].ID == alleSporen[x].Sectoren[(alleSporen[x].Sectoren.Count - 1)].ID)
                             {
                                 alleSporen[x].Beschikbaar = false;
                             }
                             dc.UpdateSpoor(alleSporen[x]);
                             dc.UpdateSector(alleSporen[x].Sectoren[i], huidigeRemise);
                             dc.UpdateTram(alleSporen[x].Sectoren[i].Tram);
                             return;
                         }
                     }
                     else if (i - 1 == -1)
                     {
                         //plaats tram, TODO: Aparte MEthode volgende stuk
                         alleSporen[x].Sectoren[i].PlaatsTram(tram);
                         if (alleSporen[x].Sectoren[i].ID == alleSporen[x].Sectoren[(alleSporen[x].Sectoren.Count - 1)].ID)
                         {
                             alleSporen[x].Beschikbaar = false;
                         }
                         dc.UpdateSpoor(alleSporen[x]);
                         dc.UpdateSector(alleSporen[x].Sectoren[i], huidigeRemise);
                         dc.UpdateTram(alleSporen[x].Sectoren[i].Tram);
                         return;
                     }
                 }
             }
         }
     }
 }
コード例 #6
0
        /// <summary>
        /// Haalt alle trams op die in schoonmaak zijn.
        /// </summary>
        /// <returns></returns>
        public List <Tram> GetViezeTrams()
        {
            DatabaseController dc         = new DatabaseController();
            List <Tram>        trams      = dc.GetAllTrams(huidigeRemise);
            List <Tram>        viezeTrams = new List <Tram>();

            foreach (Onderhoud o in GetAllOnderhoud())
            {
                foreach (Tram tram in trams)
                {
                    if (o.Tram.TramNummer == tram.TramNummer && (o.TypeOnderhoud == TypeOnderhoud.KleineSchoonmaakBeurt || o.TypeOnderhoud == TypeOnderhoud.GroteSchoonmaakBeurt))
                    {
                        viezeTrams.Add(tram);
                    }
                }
            }
            return(viezeTrams);
        }
コード例 #7
0
        public bool GenoegVrijeSporen()
        {
            List <Reservering> reserveringen = new DatabaseController().GetAllReservering(remise);
            int aantalReserveringen          = 0;

            foreach (Reservering r in reserveringen)
            {
                if (r.Spoor.ID == ID)
                {
                    aantalReserveringen++;
                }
            }

            if (GetLegeSectoren().Count > aantalReserveringen)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #8
0
        /// <summary>
        /// Rond reparatie af/ verwijderd tram uit reparatie in database
        /// </summary>
        /// <param name="nummer"></param>
        /// <returns></returns>
        public void OnderhoudAfronden(int onderhoudsID)
        {
            DatabaseController dc = new DatabaseController();

            dc.DeleteOnderhoud(onderhoudsID);
        }
コード例 #9
0
        public BeheerController()
        {
            DatabaseController dc = new DatabaseController();

            huidigeRemise = dc.GetAllRemise()[0];
        }
コード例 #10
0
        static IUcontroller()
        {
            DatabaseController dc = new DatabaseController();

            huidigeRemise = dc.GetAllRemise()[0];
        }