コード例 #1
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);
        }
コード例 #2
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");
        }
コード例 #3
0
        public static List <Tram> LaadTrams()
        {
            List <Tram> trams = new List <Tram>();

            try
            {
                connection.Open();
                OracleCommand command = new OracleCommand("SELECT * FROM TRAM");
                command.CommandType = CommandType.Text;
                command.Connection  = connection;

                OracleDataReader reader = command.ExecuteReader();

                if (!reader.HasRows)
                {
                    return(trams);
                }
                else
                {
                    while (reader.Read())
                    {
                        int      id                 = Convert.ToInt32(reader["ID"]);
                        Tramtype tramtype           = (Tramtype)Convert.ToInt32(reader["Tramtype_ID"]) - 1;
                        int      nummer             = Convert.ToInt32(reader["Nummer"]);
                        int      lengte             = Convert.ToInt32(reader["Lengte"]);
                        string   status             = Convert.ToString(reader["Status"]);
                        Remise   remise             = RemiseManager.remiseViaId(Convert.ToInt32(reader["Remise_ID_Standplaats"]));
                        bool     vervuild           = convertBool(Convert.ToString(reader["Vervuild"]));
                        bool     defect             = convertBool(Convert.ToString(reader["Defect"]));
                        bool     conducteurGeschikt = convertBool(Convert.ToString(reader["ConducteurGeschikt"]));
                        bool     beschikbaar        = convertBool(Convert.ToString(reader["Beschikbaar"]));

                        trams.Add(new Tram(id, tramtype, nummer, lengte, status, remise, vervuild, defect, conducteurGeschikt, beschikbaar));
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                connection.Close();
            }
            return(trams);
        }
コード例 #4
0
        public static List <Spoor> LaadSporen()
        {
            List <Spoor> sporen = new List <Spoor>();

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

                OracleDataReader reader = command.ExecuteReader();

                if (!reader.HasRows)
                {
                    return(sporen);
                }
                else
                {
                    while (reader.Read())
                    {
                        int    id            = Convert.ToInt32(reader["ID"]);
                        Remise remise        = RemiseManager.remiseViaId(Convert.ToInt32(reader["Remise_ID"]));
                        int    nummer        = Convert.ToInt32(reader["Nummer"]);
                        int    lengte        = Convert.ToInt32(reader["Lengte"]);
                        bool   beschikbaar   = convertBool(Convert.ToString(reader["Beschikbaar"]));
                        bool   inUitrijSpoor = convertBool(Convert.ToString(reader["InUitRijspoor"]));

                        sporen.Add(new Spoor(id, remise, nummer, lengte, beschikbaar, inUitrijSpoor, RemiseManager.sectorenVanSpoor(id)));
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                connection.Close();
            }
            return(sporen);
        }
コード例 #5
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);
        }