コード例 #1
0
        private void btnSchoonmaakBevestiging_Click(object sender, EventArgs e)
        {
            Tram          selectedTram = TramManager.tramViaId(Convert.ToInt32(lvwSchoonmaak.Items[lvwSchoonmaak.FocusedItem.Index].SubItems[0].Text));
            string        opmerking    = tbxSchoonmaakBevestiging.Text;
            TypeOnderhoud Schoonmaak;
            Medewerker    medewerker       = RemiseManager.medewerkerViaNaam(Convert.ToString(cbSchoonmaakMedewerker.SelectedItem));
            DateTime      beschikbaarDatum = dtpSchoonmaak.Value;

            if (rbtSchoonmaakGroot.Checked)
            {
                Schoonmaak = TypeOnderhoud.GroteSchoonmaak;
                selectedTram.Onderhoud(Schoonmaak, opmerking, beschikbaarDatum, medewerker);
                MessageBox.Show("toegevoegd!");
            }
            else if (rbtSchoonmaakKlein.Checked)
            {
                Schoonmaak = TypeOnderhoud.KleineSchoonmaak;
                selectedTram.Onderhoud(Schoonmaak, opmerking, beschikbaarDatum, medewerker);
                MessageBox.Show("toegevoegd!");
            }
            else
            {
                MessageBox.Show("Selecteer een schoonmaaktype");
            }
        }
コード例 #2
0
        private void btnReparatieBevestiging_Click(object sender, EventArgs e)
        {
            Tram          selectedTram = TramManager.tramViaId(Convert.ToInt32(lvwReparatie.Items[lvwReparatie.FocusedItem.Index].SubItems[0].Text));
            string        opmerking    = tbxReparatieBevestiging.Text;
            TypeOnderhoud reparatie;
            Medewerker    medewerker       = RemiseManager.medewerkerViaNaam(Convert.ToString(cbReparatieMedewerker.SelectedItem));
            DateTime      beschikbaarDatum = dtpReparatie.Value;

            if (rbtReparatieGroot.Checked)
            {
                reparatie = TypeOnderhoud.GroteReparatie;
                selectedTram.Onderhoud(reparatie, opmerking, beschikbaarDatum, medewerker);
                MessageBox.Show("toegevoegd!");
            }
            else if (rbtReparatieKlein.Checked)
            {
                reparatie = TypeOnderhoud.KleineReparatie;
                selectedTram.Onderhoud(reparatie, opmerking, beschikbaarDatum, medewerker);
                MessageBox.Show("toegevoegd!");
            }
            else
            {
                MessageBox.Show("Selecteer een reparatietype");
            }
        }
コード例 #3
0
        /// <summary>
        /// Zoekt vrije sectors waar de tram (qua lengte) op kan staan
        /// </summary>
        /// <param name="spoor">spoor waarin sectoren gezocht moeten worden</param>
        /// <param name="tram">tram die geplaatst moet worden</param>
        /// <returns></returns>
        private List <Sector> vrijeSectoren(Spoor spoor, Tram tram, int beginsectornummer, bool reverse)
        {
            List <Sector> spoorSectors = RemiseManager.sectorenVanSpoor(spoor.Id);
            List <Sector> sectors      = new List <Sector>();

            if (reverse)
            {
                spoorSectors.Reverse();          // Reverse list, zodat de tram eerst op de achterste sectoren v/h spoor komt te staan
            }
            foreach (Sector s in spoorSectors)
            {
                if (s.Blokkade)
                {
                    sectors.Clear();
                }
                if (sectors.Count < tram.lengte)
                {
                    if (s.Beschikbaar && !s.Blokkade && s.Tram == null && s.Nummer >= beginsectornummer)
                    {
                        sectors.Add(s);
                    }
                    else
                    {
                        sectors.Clear();
                    }
                }
            }

            return(sectors);
        }
コード例 #4
0
 public Tramonderhoud(Medewerker medewerker, Tram tram, DateTime beschikbaarDatum, DateTime datumTijdstip, TypeOnderhoud typeOnderhoud, string opmerking)
 {
     Medewerker       = medewerker;
     Tram             = tram;
     BeschikbaarDatum = beschikbaarDatum;
     DatumTijdstip    = datumTijdstip;
     TypeOnderhoud    = typeOnderhoud;
     Opmerking        = opmerking;
 }
コード例 #5
0
ファイル: Sector.cs プロジェクト: niekvdb/Proftaak-SMW-22-TBS
 public Sector(int id, int spoorNummer, Tram tram, int nummer, bool beschikbaar, bool blokkade)
 {
     this.Id          = id;
     this.SpoorNummer = spoorNummer;
     this.Nummer      = nummer;
     this.Tram        = tram;
     this.Beschikbaar = beschikbaar;
     this.Blokkade    = blokkade;
 }
コード例 #6
0
        public string DeelTramInOpSector(Tram tram, Sector sector)
        {
            List <Sector> vrijeSpoorSectors = null;
            List <Sector> ingedeeldeSectors = new List <Sector>();

            Sector beginSector    = sector;
            Spoor  spoorvanSector = RemiseManager.spoorViaId(sector.SpoorNummer);

            if (beginSector != null)
            {
                if (!beginSector.Blokkade)
                {
                    if (beginSector.Beschikbaar)
                    {
                        if (spoorvanSector.SectorList.Count() - beginSector.Nummer >= tram.lengte)
                        {
                            //Ok up to here
                            vrijeSpoorSectors = vrijeSectoren(spoorvanSector, tram, beginSector.Nummer, true);
                            foreach (Sector s in vrijeSpoorSectors)
                            {
                                if (s.Nummer >= sector.Nummer)
                                {
                                    ingedeeldeSectors.Add(s);
                                }
                            }
                            foreach (Sector s in ingedeeldeSectors)
                            {
                                if (s.Nummer < 30)
                                {
                                    ingedeeldeSectors = null;
                                    return("Sector is schoonmaak of reparatie-sector.");
                                }
                            }
                            if (ingedeeldeSectors.Count() < tram.lengte)
                            {
                                ingedeeldeSectors = null;
                                return("niet genoeg vrije sectoren");
                            }
                            if (ingedeeldeSectors != null && ingedeeldeSectors.Any())
                            {
                                voegTramAanSectorsToe(ingedeeldeSectors, tram, true);
                                return("Tram toegevoegd.");
                            }
                        }
                        else
                        {
                            return("niet genoeg sectoren op spoor.");
                        }
                    }
                }
                else
                {
                    return("Sector geblokkeerd");
                }
            }
            return("Sector niet gevonden");
        }
コード例 #7
0
 public static Sector sectorViaTram(Tram tram)
 {
     foreach (Sector sector in Sectors)
     {
         if (sector.Tram == tram)
         {
             return(sector);
         }
     }
     return(null);
 }
コード例 #8
0
        /// <summary>
        /// Functie met algoritme waarmee de tram ingedeeld wordt op een spoor(/op sectoren)
        /// </summary>
        /// <param name="tram">tram die ingedeeld moet worden</param>
        /// <returns>Lijst met sectoren waarop de tram is ingedeeld</returns>
        public List <Sector> DeelTramIn(Tram tram)
        {
            /* if (tram.nummer == 834)
             * {
             *   //breakpoint
             * } */
            VerwijderSchoonmaakReparatieSporen();
            List <Sector> ingedeeldeSectors = null;
            bool          sectorFound       = false;

            while (!sectorFound)
            {
                if (sporenOp)
                {
                    return(null);          // anders ingedeeldesectors = null en sectorFound = true;
                }
                Spoor ingedeeldSpoor = krijgEerstVolgendeSpoor();
                if (ingedeeldSpoor != null)
                {
                    if (isSpoorBeschikbaar(ingedeeldSpoor))
                    {
                        if (isSpoorLangGenoeg(ingedeeldSpoor, tram.lengte))
                        {
                            ingedeeldeSectors = vrijeSectoren(ingedeeldSpoor, tram, 1, true);
                            if (ingedeeldeSectors.Count() < tram.lengte)
                            {
                                ingedeeldeSectors = null;
                            }
                            if (ingedeeldeSectors != null && ingedeeldeSectors.Any())
                            {
                                sectorFound = true;
                                voegTramAanSectorsToe(ingedeeldeSectors, tram, false);
                            }
                        }
                        else
                        {
                            spoorTeller++;
                            increaseTeller = true;
                        }
                    }
                }
            }
            if (increaseTeller)
            {
                spoorTeller = 0;
            }
            return(ingedeeldeSectors);
        }
コード例 #9
0
 /// <summary>
 /// Functie om een tram toe te voegen aan sectoren.
 /// </summary>
 /// <param name="sectorlist">lijst met sectoren waarop de tram komt te staan</param>
 /// <param name="tram">tram die aan de sectoren wordt toegevoegd</param>
 private void voegTramAanSectorsToe(List <Sector> sectorlist, Tram tram, bool opslaan)
 {
     foreach (Sector s in RemiseManager.Sectors)
     {
         foreach (Sector se in sectorlist)
         {
             if (s.Id == se.Id)
             {
                 s.VoegTramToe(tram);
                 if (opslaan)
                 {
                     DatabaseManager.registreerSectorStatus(se);
                 }
             }
         }
     }
 }
コード例 #10
0
        public static List <Sector> LaadSectoren()
        {
            List <Sector> sectoren = new List <Sector>();

            try
            {
                if (connection.State != ConnectionState.Open)
                {
                    connection.Open();
                }
                OracleCommand command = new OracleCommand("SELECT * FROM SECTOR");
                command.CommandType = CommandType.Text;
                command.Connection  = connection;

                OracleDataReader reader = command.ExecuteReader();

                if (!reader.HasRows)
                {
                    return(sectoren);
                }
                else
                {
                    while (reader.Read())
                    {
                        int  id          = Convert.ToInt32(reader["ID"]);
                        int  spoorNummer = Convert.ToInt32(reader["Spoor_ID"]);//Spoor-ID != spoor-nummer
                        Tram tram        = TramManager.tramViaId(Convert.ToInt32(reader["Tram_ID"]));
                        int  nummer      = Convert.ToInt32(reader["Nummer"]);
                        bool beschikbaar = convertBool(Convert.ToString(reader["Beschikbaar"]));
                        bool blokkade    = convertBool(Convert.ToString(reader["Blokkade"]));

                        sectoren.Add(new Sector(id, spoorNummer, tram, nummer, beschikbaar, blokkade));
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                connection.Close();
            }
            return(sectoren);
        }
コード例 #11
0
        public static List <Tramonderhoud> LaadTramonderhoud()
        {
            List <Tramonderhoud> onderhoudsBeurten = new List <Tramonderhoud>();

            try
            {
                connection.Open();
                OracleCommand command = new OracleCommand("SELECT * FROM TRAM_ONDERHOUD WHERE Voltooid = 0");
                command.CommandType = CommandType.Text;
                command.Connection  = connection;

                OracleDataReader reader = command.ExecuteReader();

                if (!reader.HasRows)
                {
                    return(onderhoudsBeurten);
                }
                else
                {
                    while (reader.Read())
                    {
                        int           id               = Convert.ToInt32(reader["ID"]);
                        Medewerker    medewerker       = RemiseManager.medewerkerViaId(Convert.ToInt32(reader["Medewerker_ID"]));
                        Tram          tram             = TramManager.tramViaId(Convert.ToInt32(reader["Tram_ID"]));
                        DateTime      beschikbaarDatum = Convert.ToDateTime(reader["BeschikbaarDatum"]);
                        DateTime      datumTijd        = Convert.ToDateTime(reader["DatumTijdStip"]);
                        TypeOnderhoud typeOnderhoud    = (TypeOnderhoud)Convert.ToInt32(reader["TypeOnderhoud"]) - 1;
                        string        opmerking        = Convert.ToString(reader["Notitie"]);

                        onderhoudsBeurten.Add(new Tramonderhoud(id, medewerker, tram, beschikbaarDatum, datumTijd, typeOnderhoud, opmerking));
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                connection.Close();
            }
            return(onderhoudsBeurten);
        }
コード例 #12
0
        private void tbTramnummer_Leave(object sender, EventArgs e)
        {
            int tramnummer = -1;

            Int32.TryParse(tbTramnummer.Text, out tramnummer);
            Tram tram = TramManager.tramViaNummer(tramnummer);

            if (tram != null)
            {
                if (tram.lengte > 1)
                {
                    lbSectornummer.Text = "Eerste sectornummer";
                }
            }
            else
            {
                MessageBox.Show("Tram bestaat niet");
            }
        }
コード例 #13
0
        public static void registreerTramStatus(Tram tram)
        {
            try
            {
                connection.Open();

                OracleCommand command = new OracleCommand("UPDATE TRAM SET Status = :status, Beschikbaar = :beschikbaar WHERE ID = :tram_ID");
                command.CommandType = CommandType.Text;
                command.Connection  = connection;
                command.Parameters.Add(":tram_ID", tram.Id);
                command.Parameters.Add(":status", tram.status);
                command.Parameters.Add(":beschikbaar", convertBool(tram.beschikbaar));
                command.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                connection.Close();
            }
        }
コード例 #14
0
 public Reservering(int id, Tram tram, Spoor spoor)
 {
     Id    = id;
     Tram  = tram;
     Spoor = spoor;
 }
コード例 #15
0
ファイル: Sector.cs プロジェクト: niekvdb/Proftaak-SMW-22-TBS
 public void VoegTramToe(Tram tram)
 {
     this.Tram = tram;
 }
コード例 #16
0
        private void btnBevestig_Click(object sender, EventArgs e)
        {
            int tramNr;
            int spoorNr;
            int sectorNr;

            if (!int.TryParse(tbTramnummer.Text, out tramNr) || !int.TryParse(tbSpoornummer.Text, out spoorNr) || !int.TryParse(tbSectornummer.Text, out sectorNr))
            {
                MessageBox.Show("Voer geldige nummers in");
                return;
            }

            if (TramManager.tramViaNummer(tramNr) != null)
            {
                if (RemiseManager.spoorViaNummer(spoorNr) != null)
                {
                    Spoor spoor = RemiseManager.spoorViaNummer(spoorNr);
                    if (lbSectornummer.Text != "Sectornummer")
                    {
                        TramIndeling tI      = new TramIndeling();
                        Tram         tram    = TramManager.tramViaNummer(tramNr);
                        Sector       sector  = RemiseManager.sectorViaNummer(sectorNr, spoor);
                        string       message = tI.DeelTramInOpSector(tram, sector);
                        MessageBox.Show(message);
                    }
                    else
                    {
                        foreach (Sector sector in spoor.SectorList)
                        {
                            if (sector.Nummer == sectorNr)
                            {
                                Tram   trammetje   = TramManager.tramViaNummer(tramNr);
                                Sector sectorCheck = RemiseManager.sectorViaTram(trammetje);
                                if (sectorCheck != null)
                                {
                                    sectorCheck.ClearSector();
                                    DatabaseManager.registreerSectorStatus(sectorCheck);
                                    mainForm.refreshEenSpoor(RemiseManager.spoorViaId(sectorCheck.SpoorNummer));
                                }
                                if (sector.Blokkade == true)
                                {
                                    MessageBox.Show("Sector is geblokkeerd");
                                    return;
                                }
                                sector.VoegTramToe(trammetje);
                                mainForm.refreshEenSpoor(RemiseManager.spoorViaId(sector.SpoorNummer));
                                DatabaseManager.registreerSectorStatus(sector);
                                MessageBox.Show("Tram is toegevoegd");
                                this.Close();
                                return;
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Spoor bestaat niet");
                }
            }
            else
            {
                MessageBox.Show("Tram bestaat niet");
            }
        }