예제 #1
0
        /// <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++;
        }
예제 #2
0
 /// <summary>
 /// Smazat zatizeni studenta
 /// </summary>
 /// <param name="student"></param>
 public bool Smazat(STAG_Classes.Student student)
 {
     if (students.ContainsKey(student))
     {
         return(students.Remove(student));
     }
     return(false);
 }
예제 #3
0
 /// <summary>
 /// Zmeni zatizeni studenta kontretni katedry
 /// </summary>
 /// <param name="student"></param>
 /// /// <param name="katedra"></param>
 public bool Smazat(STAG_Classes.Student student, string katedra)
 {
     if (students.ContainsKey(student))
     {
         if (students[student].ContainsKey(katedra))
         {
             return(students[student].Remove(katedra));
         }
     }
     return(false);
 }
예제 #4
0
        /// <summary>
        /// Ziskani zateze konkretniho studenta
        /// </summary>
        /// <returns>Slovnik Katedra -> zatez</returns>
        public Dictionary <string, double> ZiskatZatezStudenta(STAG_Classes.Student student)
        {
            Dictionary <string, double> ret;

            if (students.TryGetValue(student, out ret))
            {
                return(Normalize(ret));
            }
            else
            {
                return(null);
            }
        }
예제 #5
0
 /// <summary>
 /// Přidání zátěže studenta na katedru
 /// </summary>
 /// <param name="student">Osobní číslo studenta FXXYYY</param>
 /// <param name="katedra">Zkratka katedry</param>
 /// <param name="zatez">Zatížení studenta</param>
 public void Pridat(STAG_Classes.Student student, string katedra, double zatez)
 {
     if (students.ContainsKey(student))
     {
         if (students[student].ContainsKey(katedra))
         {
             students[student][katedra] += zatez;
         }
         else
         {
             students[student].Add(katedra, zatez);
         }
     }
     else
     {
         students.Add(student, new Dictionary <string, double> {
             { katedra, zatez }
         });
     }
 }
예제 #6
0
 /// <summary>
 /// Zmeni zates studenta na konkretni katedru
 /// </summary>
 /// <param name="student"></param>
 /// <param name="katedra"></param>
 /// <param name="zatez"></param>
 /// <returns></returns>
 public bool Zmenit(STAG_Classes.Student student, string katedra, double zatez)
 {
     Smazat(student, katedra);
     Pridat(student, katedra, zatez);
     return(true);
 }