public static void Main(string[] args) { Randomizer = new Random(); if (!File.Exists("Brigadok.ini")) { throw new FileNotFoundException("Brigádok Ini file hiányzik!"); } if (!File.Exists("Versenyek.ini")) { throw new FileNotFoundException("Versenyek Ini file hiányzik!"); } // Kezelő Statikus Inicializálója VersenyzoKezelo.InitializeKezelo(); VersenyzoKezelo handler = VersenyzoKezelo.Instance; // Versenyek beolvasása IniParser versenyek = new IniParser("Versenyek.ini"); List <Verseny> AvailableRacesNORML = new List <Verseny>(); RegularChainedList <Verseny> AvailableRaces = new RegularChainedList <Verseny>(); try { foreach (var x in versenyek.EnumSection("Versenyek")) { AvailableRaces.Add(new Verseny(x)); AvailableRacesNORML.Add(new Verseny(x)); } } catch (Exception ex) { throw new FileLoadException("Hiba a versenyek file olvasásakor! " + ex); } // Versenyzők és brigádjaik/adataik beolvasása. IniParser ini = new IniParser("Brigadok.ini"); try { //Versenyzo vteszt = null; //VersenyBrigad bteszt = null; foreach (var x in ini.Sections) // Végig megyünk az összes section-n [Section1] { VersenyBrigad brigad = new VersenyBrigad(x); // Létrehozzuk a brigádot, de még nem adjuk hozzá a listához. foreach (var y in ini.EnumSection(x)) { var data = ini.GetSetting(x, y).Split('~'); if (data[1].ToLower() != "f" && data[1].ToLower() != "n") { throw new InvalidRacerDatas("Hibás versenyző nem!"); } Versenyzo v = new Versenyzo(y, data[1], data[0]); // Létrehozzuk a versenyzőt az adatokkal, majd hozzáadjuk a brigádhoz rendezett beilesztéssel handler.VersenyzoHozzaAdd(brigad, v); foreach (var z in data[2].Split(',')) { foreach (var verseny in AvailableRacesNORML) { if (verseny.Megnevezes == z) { v.Versenyek.Add(verseny); } } } //vteszt = brigad.FirstElement.ElementValue; //bteszt = brigad; //Console.WriteLine("V: " + v.UniqueID); } handler.VersenyBrigadAdd(brigad); // A brigádot hozzáadjuk a listához. //Console.WriteLine(x + " : " + brigad.FirstElement.Key); } //handler.Print(); //Console.WriteLine("print megvót"); //handler.VersenyzoTorolFromBrigad(bteszt, vteszt); } catch (Exception ex) { throw new FileLoadException("Hiba a brigádok file olvasásakor! " + ex); } //handler.Print(); //handler.VersenyBrigadSort(); //handler.Print(); Help(); bool Run = true; while (Run) { try { string s = Console.ReadLine(); int i; bool b = int.TryParse(s, out i); while (!b) { Console.WriteLine("Hibás Opció! Listázom a lehetőségeket."); Help(); s = Console.ReadLine(); b = int.TryParse(s, out i); } switch (i) { case 1: handler.VersenyBrigadSort(); Console.WriteLine("Brigádok rendezve!"); break; case 2: Console.WriteLine("Listázás."); var brigadelement = handler.FirstElement; while (brigadelement != null) { Console.WriteLine("Brigád: " + brigadelement.ElementValue.Name + " -- első kulcsa: " + brigadelement.Key); var versenyzoelement = brigadelement.ElementValue.FirstElement; while (versenyzoelement != null) { var versenyzo = versenyzoelement.ElementValue; Console.WriteLine(versenyzo.Nev + " " + versenyzo.VersenyzoAzonosito + " " + versenyzo.Lakhely); if (versenyzoelement.LastElement) { break; } versenyzoelement = versenyzoelement.NextElement; } Console.WriteLine(); brigadelement = brigadelement.NextElement; } break; case 3: Console.WriteLine("Megpróbálkozunk a versenyző versenyszámainak optimalizálásával."); Console.WriteLine(); foreach (var x in AvailableRacesNORML) { Console.Write(x.Megnevezes + "\t"); } Console.WriteLine(); try { handler.VersenyBrigadBeosztasKiir(AvailableRaces); } catch (BTSException ex) { Console.WriteLine("Hiba: " + ex.Message); } Console.WriteLine(); break; case 4: Console.WriteLine("Írjál be egy azonosítót."); string id = Console.ReadLine(); Versenyzo v = handler.AlertRemoval(id); if (v != null) { if (NParticipates != null) { NParticipates(v); } handler.VersenyzoTorol(v); Console.WriteLine("Törlés megtörtént!"); } else { Console.WriteLine("Nem található!"); } break; case 5: Console.WriteLine("Írjál be egy brigád nevet."); string name = Console.ReadLine(); bool b3 = handler.VersenyBrigadDelete(name); if (b3) { Console.WriteLine("Törlés megtörtént!"); } else { Console.WriteLine("Nem található!"); } break; case 6: Run = false; break; } Console.WriteLine("Folytatáshoz nyomj meg egy billenytű gombot."); Console.ReadKey(); } catch (Exception ex) { Console.WriteLine("Hibás bevitel, vagy valami kritikus hiba történt! " + ex); } } //Console.ReadKey(); }
/// <summary> /// Létrehoz egy instance-t ennek az osztálynak. /// </summary> public static void InitializeKezelo() { Instance = new VersenyzoKezelo(); }