示例#1
0
 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
 }
示例#2
0
文件: Dispecer.cs 项目: ddrempe/uzdiz
 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}");
         }
     }
 }
示例#3
0
        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);
        }
示例#4
0
 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();
     }
 }
示例#5
0
 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();
             }
         }
     }
 }
示例#6
0
文件: Dispecer.cs 项目: ddrempe/uzdiz
        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();
        }
示例#7
0
文件: Dispecer.cs 项目: ddrempe/uzdiz
 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}");
         }
     }
 }
示例#8
0
文件: Dispecer.cs 项目: ddrempe/uzdiz
        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();
        }
示例#9
0
文件: Dispecer.cs 项目: ddrempe/uzdiz
        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}");
                }
            }
        }
示例#10
0
        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();
            }
        }
示例#11
0
        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();
        }
示例#12
0
文件: Dispecer.cs 项目: ddrempe/uzdiz
 public static void ObradiKomanduKreni(KomandaRedak komanda)
 {
     komanda.Broj = int.MaxValue;
     ObradiKomanduKreniN(komanda);
 }
示例#13
0
 public static void ObradiKomanduOtkaz(KomandaRedak komanda)
 {
     ObradiKomanduVozaca(komanda, StatusVozaca.Otkaz);
 }
示例#14
0
 public static void ObradiKomanduBolovanje(KomandaRedak komanda)
 {
     ObradiKomanduVozaca(komanda, StatusVozaca.Bolovanje);
 }
示例#15
0
 public static void ObradiKomanduGodisnjiOdmor(KomandaRedak komanda)
 {
     ObradiKomanduVozaca(komanda, StatusVozaca.Godisnji);
 }
示例#16
0
        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;
            }
        }