public static void ObradiKomanduIzlaz(KomandaRedak komanda) { Program.Ispisivac.PromijeniBojuTeksta(ConsoleColor.Blue); Program.Ispisivac.Koristi($"KOMANDA {komanda.Vrsta}. Izlaz iz programa."); Program.Ispisivac.ResetirajPostavkeBoja(); //Environment.Exit(0); // TODO: odkomentirati }
public static void ObradiKomanduPripremi(KomandaRedak komanda) { foreach (string voziloID in komanda.Vozila) { Vozilo vozilo = Program.Vozila.FirstOrDefault(v => v.ID == voziloID); if (vozilo != null) { //provjeri da li vozilo već postoji Vozilo trazenoVoziloUObradi = Program.VozilaUObradi.FirstOrDefault(v => v.ID == vozilo.ID); if (trazenoVoziloUObradi == null) { Program.Ispisivac.PromijeniBojuTeksta(ConsoleColor.Blue); Program.Ispisivac.ObavljeniPosao($"KOMANDA {komanda.Vrsta}. Vozilo {vozilo.ID} je u listi za obradu i stavljeno u status skupljanja."); Program.Ispisivac.ResetirajPostavkeBoja(); vozilo.PromijeniStanje(VrstaStanja.Skupljanje); Program.VozilaUObradi.Add(vozilo); } else { Program.Ispisivac.PromijeniBojuTeksta(ConsoleColor.Blue); Program.Ispisivac.ObavljeniPosao($"KOMANDA {komanda.Vrsta}. Vozilo {vozilo.ID} je vec u listi za obradu."); Program.Ispisivac.ResetirajPostavkeBoja(); } } else { Program.Ispisivac.ObavljeniPosao($"Ne postoji vozilo {voziloID} za komandu {komanda.Vrsta}"); } } }
public static void PrimajUnosKomandi() { KomandaRedak komanda; string unos; do { Console.Write("UPISITE KOMANDU: "); unos = Console.ReadLine(); string[] retci = new string[1]; retci[0] = unos; CitacPopisaBuilder citac = new CitacPopisaBuilder(retci); citac.ProcitajElementeRetka(0, ';'); try { komanda = new KomandaRedak(citac); ObradiPristigluKomandu(komanda); } catch (Exception) { Console.WriteLine("NEISPRAVNA KOMANDA"); komanda = Program.Komande.First(); } } while (komanda.Vrsta != VrstaKomande.IZLAZ); }
public static void ObradiKomanduNovi(KomandaRedak komanda) { foreach (string imeVozaca in komanda.Lista) { Vozac vozac = new Vozac(imeVozaca); Program.NoviVozaci.Add(vozac); Program.Ispisivac.PromijeniBojuTeksta(ConsoleColor.Blue); Program.Ispisivac.Koristi($"KOMANDA {komanda.Vrsta}. Vozac {vozac.Ime} je novi vozac."); Program.Ispisivac.ResetirajPostavkeBoja(); } }
public static void ObradiKomanduVozaca(KomandaRedak komanda, StatusVozaca statusVozaca) { foreach (Vozilo vozilo in Program.Vozila) { foreach (string imeVozaca in komanda.Lista) { Vozac vozac = vozilo.Vozaci.FirstOrDefault(v => v.Ime == imeVozaca); if (vozac != null) { vozac.Status = statusVozaca; Program.Ispisivac.PromijeniBojuTeksta(ConsoleColor.Blue); Program.Ispisivac.Koristi($"KOMANDA {komanda.Vrsta}. Vozac {vozac.Ime} vozila {vozilo.ID} je u sada u statusu {vozac.Status}."); Program.Ispisivac.ResetirajPostavkeBoja(); } } } }
public static void ObradiKomanduStatus(KomandaRedak komanda) { List <Vozilo> vozilaKojaNisuUKvaru = Program.VozilaUObradi.Where(v => !v.TrenutnoStanje.Equals(VrstaStanja.Pokvareno)).ToList(); string redakZaIspis = String.Format("|{0,5}|{1,15}|{2,15}|{3,10}|{4,20}|{5,20}|", "ID", "Naziv", "Vrsta", "Nosivost", "Kolicina otpada", "Stanje"); Program.Ispisivac.ObavljeniPosao(redakZaIspis); foreach (Vozilo vozilo in vozilaKojaNisuUKvaru) { redakZaIspis = String.Format("|{0,5}|{1,15}|{2,15}|{3,10}|{4,20}|{5,20}|", vozilo.ID, vozilo.Naziv, vozilo.VrstaOtpada, vozilo.Nosivost, vozilo.KolicinaOtpada, vozilo.TrenutnoStanje); Program.Ispisivac.ObavljeniPosao(redakZaIspis); } Program.Ispisivac.ObavljeniPosao(); }
public static void ObradiKomanduKvar(KomandaRedak komanda) { foreach (string voziloID in komanda.Vozila) { Vozilo vozilo = Program.Vozila.FirstOrDefault(v => v.ID == voziloID); if (vozilo != null) { vozilo.PromijeniStanje(VrstaStanja.Pokvareno); Program.Ispisivac.PromijeniBojuTeksta(ConsoleColor.Blue); Program.Ispisivac.ObavljeniPosao($"KOMANDA {komanda.Vrsta}. Vozilo {vozilo.ID} je u stanju kvara."); Program.Ispisivac.ResetirajPostavkeBoja(); } else { Program.Ispisivac.ObavljeniPosao($"Ne postoji vozilo {voziloID} za komandu {komanda.Vrsta}"); } } }
public static void ObradiKomanduKreniN(KomandaRedak komanda) { int brojPotrebnihCiklusa = komanda.Broj; int redniBrojVozila = 0; List <Vozilo> vozilaKojaSkupljaju = Program.VozilaUObradi.Where(v => v.TrenutnoStanje.Equals(VrstaStanja.Skupljanje)).ToList(); List <Vozilo> vozilaZaPraznjenje = Program.VozilaUObradi.Where(v => v.TrenutnoStanje.Equals(VrstaStanja.Praznjenje)).ToList(); for (TrenutniCiklus = 1; TrenutniCiklus < brojPotrebnihCiklusa; TrenutniCiklus++) { if (vozilaKojaSkupljaju.Count == 0 && vozilaZaPraznjenje.Count == 0) { break; } if (vozilaKojaSkupljaju.Count > 0) { if (redniBrojVozila >= vozilaKojaSkupljaju.Count) { redniBrojVozila = 0; } bool voziloIzaslo = false; PokupiOtpad(vozilaKojaSkupljaju[redniBrojVozila], ref voziloIzaslo); if (!voziloIzaslo) { redniBrojVozila++; } } if (vozilaZaPraznjenje.Count > 0) { OdradiCiklusPraznjenja(); } vozilaKojaSkupljaju = Program.VozilaUObradi.Where(v => v.TrenutnoStanje.Equals(VrstaStanja.Skupljanje)).ToList(); vozilaZaPraznjenje = Program.VozilaUObradi.Where(v => v.TrenutnoStanje.Equals(VrstaStanja.Praznjenje)).ToList(); } Program.Ispisivac.ObavljeniPosao($"C{TrenutniCiklus} Zavrseno izvrsavanje komande {komanda.Vrsta}."); Program.Ispisivac.ObavljeniPosao(); }
public static void ObradiKomanduIsprazni(KomandaRedak komanda) { foreach (string voziloID in komanda.Vozila) { Vozilo vozilo = Program.Vozila.FirstOrDefault(v => v.ID == voziloID); if (vozilo != null) { vozilo.PromijeniStanje(VrstaStanja.Praznjenje); vozilo.BrojPreostalihCiklusa = Program.Parametri.DohvatiParametarInt("brojRadnihCiklusaZaOdvoz"); Program.Ispisivac.PromijeniBojuTeksta(ConsoleColor.Blue); Program.Ispisivac.ObavljeniPosao($"KOMANDA {komanda.Vrsta}. Vozilo {vozilo.ID} je poslano na odvoz."); Program.Ispisivac.ResetirajPostavkeBoja(); Statistika.VoziloBrojOdlazakaNaDeponij[vozilo.ID]++; } else { Program.Ispisivac.ObavljeniPosao($"Ne postoji vozilo {voziloID} za komandu {komanda.Vrsta}"); } } }
public static void ObradiKomanduPreuzmi(KomandaRedak komanda) { foreach (Vozilo dosadasnjeVozilo in Program.Vozila) { Vozac vozac = dosadasnjeVozilo.Vozaci.FirstOrDefault(v => v.Ime == komanda.Vozac); if (vozac != null) { dosadasnjeVozilo.Vozaci.Remove(vozac); Vozilo novoVozilo = Program.Vozila.FirstOrDefault(v => v.ID == komanda.Vozilo); if (novoVozilo != null) { novoVozilo.Vozaci.Add(vozac); vozac.IDVozila = novoVozilo.ID; } Program.Ispisivac.PromijeniBojuTeksta(ConsoleColor.Blue); Program.Ispisivac.Koristi($"KOMANDA {komanda.Vrsta}. Vozac {vozac.Ime} vozila {dosadasnjeVozilo.ID} preuzima vozilo {novoVozilo.ID}."); Program.Ispisivac.ResetirajPostavkeBoja(); return; } } Vozac noviVozac = Program.NoviVozaci.FirstOrDefault(v => v.Ime == komanda.Vozac); if (noviVozac != null) { Vozilo novoVozilo = Program.Vozila.FirstOrDefault(v => v.ID == komanda.Vozilo); if (novoVozilo != null) { novoVozilo.Vozaci.Add(noviVozac); noviVozac.IDVozila = novoVozilo.ID; } Program.Ispisivac.PromijeniBojuTeksta(ConsoleColor.Blue); Program.Ispisivac.Koristi($"KOMANDA {komanda.Vrsta}. Vozac {noviVozac.Ime} bez dosadasnjeg vozila preuzima vozilo {novoVozilo.ID}."); Program.Ispisivac.ResetirajPostavkeBoja(); } }
public static void ObradiKomanduVozaci(KomandaRedak komanda) { Program.Ispisivac.PromijeniBojuTeksta(ConsoleColor.Blue); Program.Ispisivac.Koristi($"KOMANDA {komanda.Vrsta}. Ispis statusa i ostalih podataka vozaca."); Program.Ispisivac.ResetirajPostavkeBoja(); List <Vozac> sviVozaci = DohvatiSveVozace(); string redakZaIspis = String.Format("|{0,5}|{1,10}|{2,15}|{3,5}|", "#", "Ime", "Status", "Vozilo"); Program.Ispisivac.Koristi(redakZaIspis); for (int i = 0; i < sviVozaci.Count; i++) { Vozac vozac = sviVozaci[i]; redakZaIspis = String.Format("|{0,5}|{1,10}|{2,15}|{3,5}|", i + 1, vozac.Ime, vozac.Status, vozac.IDVozila); Program.Ispisivac.Koristi(redakZaIspis); } Program.Ispisivac.Koristi(); }
public static void ObradiKomanduKreni(KomandaRedak komanda) { komanda.Broj = int.MaxValue; ObradiKomanduKreniN(komanda); }
public static void ObradiKomanduOtkaz(KomandaRedak komanda) { ObradiKomanduVozaca(komanda, StatusVozaca.Otkaz); }
public static void ObradiKomanduBolovanje(KomandaRedak komanda) { ObradiKomanduVozaca(komanda, StatusVozaca.Bolovanje); }
public static void ObradiKomanduGodisnjiOdmor(KomandaRedak komanda) { ObradiKomanduVozaca(komanda, StatusVozaca.Godisnji); }
private static void ObradiPristigluKomandu(KomandaRedak komanda) { Program.Ispisivac.PromijeniBojuTeksta(ConsoleColor.Red); string brojCiklusa = komanda.Vrsta.Equals(VrstaKomande.KRENI_N) ? komanda.Broj.ToString() : ""; Program.Ispisivac.Koristi($"Pristigla je komanda {komanda.Vrsta}{brojCiklusa}."); Program.Ispisivac.ResetirajPostavkeBoja(); switch (komanda.Vrsta) { case VrstaKomande.PRIPREMI: Dispecer.ObradiKomanduPripremi(komanda); break; case VrstaKomande.KRENI: Dispecer.ObradiKomanduKreni(komanda); break; case VrstaKomande.KRENI_N: Dispecer.ObradiKomanduKreniN(komanda); break; case VrstaKomande.KVAR: Dispecer.ObradiKomanduKvar(komanda); break; case VrstaKomande.KONTROLA: Dispecer.ObradiKomanduKontrola(komanda); break; case VrstaKomande.ISPRAZNI: Dispecer.ObradiKomanduIsprazni(komanda); break; case VrstaKomande.STATUS: Dispecer.ObradiKomanduStatus(komanda); break; case VrstaKomande.GODIŠNJI_ODMOR: Dispecer.ObradiKomanduGodisnjiOdmor(komanda); break; case VrstaKomande.BOLOVANJE: Dispecer.ObradiKomanduBolovanje(komanda); break; case VrstaKomande.OTKAZ: Dispecer.ObradiKomanduOtkaz(komanda); break; case VrstaKomande.NOVI: Dispecer.ObradiKomanduNovi(komanda); break; case VrstaKomande.IZLAZ: Dispecer.ObradiKomanduIzlaz(komanda); break; case VrstaKomande.PREUZMI: Dispecer.ObradiKomanduPreuzmi(komanda); break; case VrstaKomande.VOZAČI: Dispecer.ObradiKomanduVozaci(komanda); break; default: break; } }