/// <summary> /// Konstruktor matki /// </summary> /// <param name="Name"></param> /// <param name="sprawa"></param> public Matka(string Name, Sprawa sprawa) { stan = MozliwyStan.Kolejka; this.Name = Name; this.sprawa = sprawa; spisczasu.CzasPrzyjscia = czas.getTime(); Console.WriteLine("Utworzona Matka " + this.Name + " o godzinie " + spisczasu.CzasPrzyjscia.ToString("T") + " ze sprawa " + this.sprawa.Typ_Sprawy + " o trudnosci " + this.sprawa.Trudnosc); }
public void Update() { switch (stan) { case MozliwyStan.Kolejka: Pobierz_Bilet(); break; case MozliwyStan.Poczekalnia: Podejdz_Do_Okienka(); break; case MozliwyStan.Okienko: if (!sprawa.Rozwiazana) { } else { Console.WriteLine("Matka " + Name + " ma rozwiazana sprawe"); Awansuj(); } break; case MozliwyStan.Wyszla: Console.WriteLine("Wyszłam, mam ID: " + Name + " | Zostałam obsłużona z numerem: " + bilet); Console.WriteLine("Timestamps: "); Console.WriteLine("Przyszlam o " + spisczasu.CzasPrzyjscia); if (spisczasu.CzasOtrzymaniaNumerka.Year != 1) { Console.WriteLine("Otrzymalam numerek o " + spisczasu.CzasOtrzymaniaNumerka); if (spisczasu.CzasPodejsciaDoOkienka.Year != 1) { Console.WriteLine("Podeszłam do okienka o " + spisczasu.CzasPodejsciaDoOkienka); if (spisczasu.CzasRozwiazaniaSprawy.Year != 1) { Console.WriteLine("Rozwiązałam sprawe o " + spisczasu.CzasRozwiazaniaSprawy); } else { Console.WriteLine("Nie rozwiązałam sprawy"); } } else { Console.WriteLine("Nie podeszłam do okienka"); } } else { Console.WriteLine("Nie otrzymałam numerka"); } break; default: break; } if (!SimulationRunning) { if (stan == MozliwyStan.Kolejka) { ListaSprawDostep.WaitOne(); ListaMatek.Add(this); ListaSprawDostep.ReleaseMutex(); stan = MozliwyStan.Wyszla; } else if (stan == MozliwyStan.Poczekalnia) { stan = MozliwyStan.Wyszla; } } }