/// <summary> /// Vytvoří jednu SRA pro jeden předmět /// </summary> /// <param name="akce">Rozvrhová akce</param> public SRA(RozvrhovaAkce akce) { Inicializuj(); VnoreneAkce.Add(akce); Predmety.Add(akce.PredmetRef); PocetStudentuSRA = akce.Obsazeni; }
/// <summary> /// Bstará zprávně zařazení a přidání referencí mezi rozvrhovou akcí a souvisejícími objekty /// </summary> /// <param name="data">Objekt databáze kam se data zařadí</param> /// <param name="student">Objekt studenta jehož se rozvrhová akce týká</param> /// <param name="roak">Zpracovávaná akce studenta</param> /// <param name="serializer">NewtonSoft JSON serializer pro deserializaci staženého souboru</param> private static void Handle_Roak(STAG_Classes.STAG_Database data, STAG_Classes.Student student, STAG_Classes.RozvrhovaAkce roak, JsonSerializer serializer) { // Zajistím aby mi nechyběl předmět této rozvrhové akce // Zkontroluji, jestli už znám katedru toho předmětu if (!data.PredmetyPodleKateder.ContainsKey(roak.Katedra)) { // Zatim neznam ~ neni z me fakultu... musim stahnout (nebyl obsažen v predmetyByFakultaFullInfo) Handle_PredmetInfo(roak.Katedra, roak.Predmet, data, serializer); } // Zkontroluji, jestli už ten předmět znám if (!data.PredmetyPodleKateder[roak.Katedra].ContainsKey(roak.Predmet)) { // Nezman predmet... musim stahnout Handle_PredmetInfo(roak.Katedra, roak.Predmet, data, serializer); } // vvvvv REFERENCE vvvvvv // Ulozim si akci a ridam reference student => roak if (!data.Akce.ContainsKey(roak.RoakIdno)) { data.Akce.Add(roak.RoakIdno, roak); // Pridam reference roak <=> predmet data.PredmetyPodleKateder[roak.Katedra][roak.Predmet].VsechnyAkce.Add(roak); roak.PredmetRef = data.PredmetyPodleKateder[roak.Katedra][roak.Predmet]; } // Přidám akci do rozvrhu studenta student.Rozvrh.Add(data.Akce[roak.RoakIdno]); // Pro zajímavost zjišťuji kolik studentů skutečně ukazuje na tuto akci (porovnání obsazenosti vs. referencí) data.Akce[roak.RoakIdno].referenceCount++; }
private static void ZkontrolujAkci(List <STAG_Classes.Ucitel> neco, KeyValuePair <string, STAG_Classes.Predmet> predmet, ref PredmetVDotazniku predmetVDotazniku, STAG_Classes.RozvrhovaAkce akce) { if (predmetVDotazniku == null) { predmetVDotazniku = new PredmetVDotazniku() { predmet = predmet.Value, typAkce = akce.TypAkceZkr, ucitele = new Dictionary <string, List <Ucitel> >() }; } foreach (var ucitel in neco) { if (!(predmetVDotazniku.ucitele.ContainsKey(ucitel.Katedra) && predmetVDotazniku.ucitele[ucitel.Katedra].Contains(ucitel))) { predmetVDotazniku.AddUcitel(ucitel); } } }