예제 #1
0
파일: Program.cs 프로젝트: dretax/TourdeNIK
        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();
        }
예제 #2
0
 /// <summary>
 /// Létrehoz egy instance-t ennek az osztálynak.
 /// </summary>
 public static void InitializeKezelo()
 {
     Instance = new VersenyzoKezelo();
 }