class Dolgozok
{
    public string Nev { get; private set; }
    public string Nem { get; private set; }
    public string Reszleg { get; private set; }
    public int Belepes { get; private set; }
    public int Ber { get; private set; }
    List<Dolgozok> dataList;

    public Dolgozok(string nev, string nem, string reszleg, int belepes, int ber)
    {
        Nev = nev;
        Nem = nem;
        Belepes = belepes;
        Reszleg = reszleg;
        Ber = ber;
    }

    public Dolgozok()
    {
        dataList = new List<Dolgozok>();
        StreamReader sr = new StreamReader("berek2020.txt");
        string[] line = sr.ReadLine().Split(";");

        while(!sr.EndOfStream)
        {
            line = sr.ReadLine().Split(";");
            Dolgozok dolgozok = new Dolgozok(Nev = line[0], Nem = line[1], Reszleg = line[2], Belepes = Convert.ToInt32(line[3]), Ber = Convert.ToInt32(line[4]));
            dataList.Add(dolgozok);
        }

        sr.Close();
    }

    public void Feladat3()
    {
        Console.WriteLine($"3. Feladat: Dolgozók száma: {dataList.Count} fő");
    }

    public void Feladat4()
    {
        double berek = 0;
        foreach (var line in dataList)
        {
            berek += line.Ber;
        }

        Console.WriteLine($"4. Feladat: Bérek átlaga: {Math.Round(berek / dataList.Count / 1000, 1)} eFt");
    }

    public string Bekeres()
    {
        Console.Write("Kérem a részleg nevét: ");
        return Console.ReadLine();
    }

    public void Feladat6()
    {
        string reszleg = Bekeres();
        int legnagyobbFizetes = 0;

        foreach (var line in dataList)
        {
            if (line.Reszleg == reszleg && line.Ber > legnagyobbFizetes)
            {
                legnagyobbFizetes = line.Ber;
            }
        }

        foreach (var line in dataList)
        {
            if (legnagyobbFizetes == line.Ber)
            {
                Console.WriteLine("6. Feladat: A legtöbbet kereső dolgozó a megadott részlegen");
                Console.WriteLine($"     Név: {line.Nev}");
                Console.WriteLine($"     Neme: {line.Nem}");
                Console.WriteLine($"     Belépés: {line.Belepes}");
                Console.WriteLine($"     Bér: {line.Ber} Forint");
            }
        }
    }

    public void Statisztika()
    {
        List<string> reszlegek = new List<string>();
        Dictionary<string, int> statisztika = new Dictionary<string, int>();
        foreach (var line in dataList)
        {
            if (reszlegek.Contains(line.Reszleg))
            {
                continue;
            }

            else
            {
                reszlegek.Add(line.Reszleg);
            }
        }

        foreach (var item in reszlegek)
        {
            statisztika.Add(item, 0);
        }

        foreach (var line in dataList)
        {
            statisztika[line.Reszleg] += 1;
        }

        Console.WriteLine("7. Feladat: Statisztika");

        foreach (KeyValuePair<string, int> item in statisztika)
        {
            Console.WriteLine($"\t{item.Key}: {item.Value} fő");
        }
    }

    public override string ToString()
    {
        return "";
    }
}
