/// <summary> /// Az osztály évfolyama és szekciója alapján visszaadja az osztályt magát. /// </summary> /// <param name="neve">Az osztály neve, pl. "11.f" vagy "nyf"</param> /// <returns></returns> public static bool TryGet(string évf, string szek, Nyom nyom, out Osztály result) { DebugConsole.WriteLine(nyom, $"Keresem: { évf} { szek}"); int ix = Osztály.lista.FindIndex(x => x.évfolyam == évf && x.szekció == szek); result = ix >= 0 ? Osztály.lista[ix] : null; return(ix >= 0); }
/// <summary> /// Az osztály sorszáma alapján visszaadja az osztályt magát. Hibakezel. /// </summary> /// <param name="neve">Az osztály neve, pl. "11.f" vagy "nyf"</param> /// <returns></returns> public static bool TryGet(int sorszám, Nyom nyom, out Osztály result) { DebugConsole.WriteLine(nyom, $"Keresem: {sorszám}"); int ix = Osztály.lista.FindIndex(x => x.sorszám == sorszám); result = ix >= 0? Osztály.lista[ix]:null; return(ix >= 0); }
/// <summary> /// Az osztálykódokból álló listákat az osztályok listáinak elemeiből álló osztálylistává alakítja. /// </summary> /// <param name="kód"></param> /// <returns></returns> public static List <Osztály> str2oszt(string kód, Nyom nyom) // a kód egy ilyen : "9.abd,10.ef,11.bcd,12.aef" { DebugConsole.WriteLine(nyom, "indul"); List <Osztály> osztálylista = new List <Osztály>(); customsávkódok = DB_Beolvas("DB_customsávkódok.tsv", 0, 1, nyom / "DB_beolvas:customsávkódok"); string[] évfolyamonként = kód.Split(','); // évfolyamonként: [ "9.abd" , "10.ef" , "11.bcd" , "12.aef" ] foreach (string évfolyamrész in évfolyamonként) // egy évfolyamrész: "11.bcd" { string[] évfolyamsplit = évfolyamrész.Split('.'); if (évfolyamsplit.Length == 1) // ez csak a kny, nye, nyf, oktv, stb. esetében lehet, szóval ez egy custom sávnév kell legyen. { osztálylista.AddRange(str2oszt(customsávkódok[évfolyamsplit[0]], nyom)); // csak akkor lehet végtelen kör, ha az adatbázisban kör van! } else { string évf = évfolyamsplit[0]; foreach (char betű in évfolyamsplit[1]) { Osztály osztály; if (!Osztály.TryGet(évf.ToUpper(), betű.ToString().ToUpper(), nyom / "osztály.TryGet", out osztály)) { new Probléma(nyom, $"[red]{{BAJ VAN!}} nem találtam meg az osztályt az évfolyam és szekció alapján. "); } osztálylista.Add(osztály); } } } if (sávbontás_részletezése) { DebugConsole.WriteLine(nyom, $"A \"{kód}\" kódból a következő osztályokat fejtettem vissza:"); foreach (var item in osztálylista) { DebugConsole.WriteLine(nyom, $"évfolyam: {item.évfolyam}, szekció: {item.szekció}, név: {item.név}"); } } return(osztálylista); }