/// <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); }
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"); }
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); }
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); }
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); }