private bool MaSkupinaRozvrhovouAkci(Models.StudijniSkupina skupina) { foreach (var den in skupina.Rozvrh) { if (den.Value.Count > 0) { return(true); } } return(false); }
private void printHeader(Models.StudijniSkupina skupina) { Console.Clear(); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.DarkRed; Console.WriteLine("\t\tSTUDIJNÍ SKUPINY JSOU TVOŘENY AUTOMATICKY, UPRAVUJTE OBEZŘETNĚ!\r\n"); Console.ForegroundColor = ConsoleColor.Black; Console.WriteLine("\t\tSpráva studentů studijní skupiny ID: {0} předmětu: {1}", skupina.Id, skupina.Predmet.Nazev); Console.WriteLine("\t -------------------------------------------------------------------------------------------------"); Console.WriteLine("\t\tID Jméno ID Jméno"); Console.WriteLine("\t -------------------------------------------------------------------------------------------------"); }
public override void Render() { Models.StudijniSkupina skupina = (Models.StudijniSkupina)Context["skupina"]; Dictionary <int, Models.Student> studentiSkupiny = skupina.StudentiSkupiny; Dictionary <int, Models.Student> studenti = (Dictionary <int, Models.Student>)Context["studenti"]; string input = String.Empty; int i = 0; int itrBuffer = 0; int item = 0; int volba = 0; ConsoleKeyInfo key; bool ok = false; bool emptyBuffer = false; int bufferSize = 20; List <int> actualId = new List <int>(); do // volba editace { Console.Clear(); Console.WriteLine(); Console.WriteLine("\tSPRÁVA STUDENTŮ SKUPINY"); Console.WriteLine("\r\n\tZvolte další postup:"); Console.WriteLine(); Console.WriteLine("\t\t1: Výpis studentů skupiny"); Console.WriteLine("\t\t2: Přidání studentů skupině"); Console.WriteLine("\t\t3: Storno"); Console.Write("\r\n\tVaše volba: "); key = Console.ReadKey(); ok = (int.TryParse(key.KeyChar.ToString(), out volba)) && (volba > 0 && volba < 4); } while (!ok); // volba editace switch (volba) { case 1: // Výpis studentů skupiny + odstaňování do { printHeader(skupina); var serazeniStudentiSkupiny = from pair in skupina.StudentiSkupiny orderby pair.Value.Id ascending select pair; var ss = serazeniStudentiSkupiny.ToList(); int count = ss.Count; if (count == 0) { Console.WriteLine("\r\n\t\tSkupina zatím neobsahuje žádného studenta."); Console.Write("\r\n\t\tStiskněte libovolnou klávesu pro návrat."); Console.ReadKey(); Request("StudijniSkupina", "StudentiSkupiny", skupina); } bool odd = true; for (i = 0, itrBuffer = 0; i < count; i++) { actualId.Add(ss[i].Key); itrBuffer++; if (itrBuffer == bufferSize || (count < bufferSize && itrBuffer == count) || i == count - 1) { do { odd = true; emptyBuffer = false; for (int j = 0; j < actualId.Count; j++) { if (odd) { Console.Write("\t\t{0,-5} {1,-30}", studentiSkupiny[actualId[j]].Id, studentiSkupiny[actualId[j]].Prijmeni + studentiSkupiny[actualId[j]].Jmeno); odd = false; } else { Console.WriteLine("\t\t{0,-5} {1,-30}", studentiSkupiny[actualId[j]].Id, studentiSkupiny[actualId[j]].Prijmeni + studentiSkupiny[actualId[j]].Jmeno); odd = true; } } do { if (!odd) { Console.WriteLine(); } Console.Write("\r\n\tZadejte ID studenta, kterého chcete odebrat, nebo enter posun/ukončení: "); input = Console.ReadLine(); ok = int.TryParse(input, out item); if (ok) { ok = actualId.Contains(item); } if (!ok) { ok = input == String.Empty; } } while (!ok); if (input != String.Empty) { if (studentiSkupiny.ContainsKey(item) && actualId.Contains(item)) { OnDeleteItem(studentiSkupiny[item]); actualId.Remove(item); if (actualId.Count == 0) { emptyBuffer = true; } } } else { // nebylo zvoleno actualId.RemoveRange(0, actualId.Count); } printHeader(skupina); itrBuffer = 0; } while (input != String.Empty && !emptyBuffer); } } } while (input != String.Empty && !emptyBuffer); // (case 1: odebírání) Request("StudijniSkupina", "StudentiSkupiny", skupina); break; case 2: // Plnění skupiny studenty do { printHeader(skupina); var s = studenti.ToList(); int count = s.Count; if (count == 0) { Console.WriteLine("\r\n\t\tSystém zatím neobsahuje žádného studenta."); Console.Write("\r\n\t\tStiskněte libovolnou klávesu pro návrat."); Console.ReadKey(); Request("StudijniSkupina", "StudentiSkupiny", skupina); } bool odd = true; for (i = 0, itrBuffer = 0; i < count; i++) { if (skupina.StudentiSkupiny.ContainsKey(s[i].Key) || !s[i].Value.ZapsanePredmety.ContainsKey(skupina.Predmet.Id)) { continue; } else { actualId.Add(s[i].Key); itrBuffer++; } if (itrBuffer == bufferSize || (count < bufferSize && itrBuffer == count) || i == count - 1) { do { odd = true; emptyBuffer = false; for (int j = 0; j < actualId.Count; j++) { if (odd) { Console.Write("\t\t{0,-5} {1,-30}", studenti[actualId[j]].Id, studenti[actualId[j]].Prijmeni + studenti[actualId[j]].Jmeno); odd = false; } else { Console.WriteLine("\t\t{0,-5} {1,-30}", studenti[actualId[j]].Id, studenti[actualId[j]].Prijmeni + studenti[actualId[j]].Jmeno); odd = true; } } do { if (!odd) { Console.WriteLine(); } Console.Write("\r\n\tZadejte ID studenta, kterého chcete zapsat, nebo enter posun/ukončení: "); input = Console.ReadLine(); ok = int.TryParse(input, out item); if (ok) { ok = actualId.Contains(item); } if (!ok) { ok = input == String.Empty; } } while (!ok); if (input != String.Empty) { if (studenti.ContainsKey(item) && actualId.Contains(item)) { OnAddItem(studenti[item]); actualId.Remove(item); if (actualId.Count == 0) { emptyBuffer = true; } } } else { // nebylo zvoleno actualId.RemoveRange(0, actualId.Count); } printHeader(skupina); itrBuffer = 0; } while (input != String.Empty && !emptyBuffer); } } } while (input != String.Empty && !emptyBuffer); // (case 2: přidávání) Request("StudijniSkupina", "StudentiSkupiny", skupina); break; case 3: // Storno break; } } // render