Kanban nástěnka
Požadavky na absolvování
1. Zadání
Co je cílem zadání?
- Definice hierarchického datového modelu s využitím abstraktní bázové třídy a polymorfismu pro ukládání různorodých úkolů do jednotné kolekce.
- Asynchronní naplnění počátečního stavu aplikace stažením a deserializací dat ze vzdáleného rozhraní REST API.
- Rozdělení sdílené kolekce do vizuálně nezávislých sloupců pomocí dynamického filtrování a prioritního řazení prostřednictvím dotazů LINQ.
- Implementace uživatelského rozhraní s podporou technologie Drag & Drop pro vizuální přesun objektů mezi jednotlivými zónami.
- Zajištění správy vnitřního stavu komponenty, kdy modifikace textového atributu objektu vyvolá automatické překreslení a přesun prvku v aplikaci.
Zadání
Vytvořte abstraktní bázovou třídu PracovniUkol, která bude obsahovat vlastnosti Id, Nazev a Stav (s výchozí hodnotou "Nové"), virtuální vlastnost JeKriticky s výchozí hodnotou false a abstraktní metodu ZiskejTypUkolu(). Z této bázové třídy následně odvoďte dvě specializované třídy: ExterniUkol (přepisuje vlastnosti Stav) a KritickaChyba (přepisuje vlastnost JeKriticky).
V Razor komponentě vytvořte interaktivní agilní nástěnku s následující funkcionalitou:
- Inicializace dat: Při spuštění komponenty asynchronně stáhněte data ze služby
https://jsonplaceholder.typicode.com/todos. Prvních několik záznamů převeďte na instance typu ExterniUkol a vložte je do hlavní sdílené kolekce úkolů. - Rozložení sloupců: Vizuálně rozdělte obrazovku do tří sloupců: Nové, Probíhá a Dokončeno. Zajistěte, aby každý sloupec pomocí technologie LINQ vykresloval pouze úkoly s odpovídajícím stavem. A úkoly se daly mezi jednotlivými sloupci přetahovat pomocí Drag & Drop.
- Řazení s prioritou: Ve sloupci Nové řaďte kritické chyby nad ostatní úkoly.
- Formulář: Nad nástěnku přidejte jednoduchý textový vstup a tlačítko, kterým uživatel do systému manuálně přidá novou instanci typu KritickaChyba.
Příklad, jak by mohla stránka vypadat:
Pokud se okno nenačetlo, klikněte zde.