|
|
# Zadanie - časť 3
|
|
|
|
|
|
Koniec je už na dohľad...
|
|
|
|
|
|
Cieľom tejto časti zadania je už len dokončiť rozrobené veci:
|
|
|
|
|
|
Niekoľko poznámok na začiatok:
|
|
|
- Inventory a RestaurantMenu je vhodné zabaliť do triedy, ktorá zabezpečuje komunikáciu medzi UI vrstvou a už spomenutými triedami - tu spravte načítanie a zápis do súboru, rozdelenie kolekcie načítanej zo súboru na do zodpovedajúcich kategórií - jedná sa o návrhový vzor Facade https://en.wikipedia.org/wiki/Facade_pattern
|
|
|
- na zistenie, či je objekt určitej triedy (platí aj pre potomkov) môžete použiť operátor __is__ https://www.geeksforgeeks.org/c-sharp-is-operator-keyword/
|
|
|
- nezabúdajte, že existujú aj preťažené metódy a konštruktory...
|
|
|
|
|
|
## 1. Menu
|
|
|
|
|
|
Do formulára so skladom pridajte možnosť upravovať menu (pridávať, editovať a mazať veci), nezabudnite, že niektoré veci patria aj na sklad, v tomto prípade je ich potrebné pridať do oboch súčasne... v prípade odstránenia z menu ich ale na sklade ponechajte.
|
|
|
|
|
|
## 2. Pečenie pizze
|
|
|
|
|
|
Vytvorte triedu Oven ktorá je zopdovedná za pečenie pizze.
|
|
|
|
|
|
Nech pečenie pizze nie je riešené pre fixný počet pecí, ale nech sa počet určí pri inicializácií. Ak sú voľné miesta v peci, pri vytvorení objednávky automaticky ju začnite piecť (v prípade tejto simulácie preskočíme prípravu kuchárom), ak sú všetky pece obsadené, pizza samozrejme musí počkať, kým sa na ňu dostane rad. (Vhodné použiť kolekciu Queue)
|
|
|
|
|
|
Pridajte si formulár, a naň niekoľko ProgressBar-ov - tieto budú zobrazovať priebeh pečenia a vhodne prepojte tento Form a Oven (event handlers, invoke atď...)
|
|
|
__Triedy na backende musia na sebe závisieť priamo, nie cez UI.__
|
|
|
|
|
|
Zobrazte počítadlo čakajúcich pízz.
|
|
|
|
|
|
Poznámka: samozrejme v praxi by sa tu použil jednoduchý timer, cieľom tejto časti zadanie je však ukázať základnú znalosť práce s vláknami, použite teda jedno z nasledujúcich: Thread / ThreadPool / BackgroundWorker
|
|
|
|
|
|
Zabezpečte, že po dokončení pečenia bude kuchár upozornený. |
|
|
\ No newline at end of file |