using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace MaratonValtoGUI
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void Form1_Load(object sender, EventArgs e)
        {

            

        }


        private void megnyitásToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //string filepath = OpenFileDialog();
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.ShowDialog();

            string path = openFileDialog.FileName;

            Data.eredmenyek = LoadFromCsv(path);

            foreach (var item in Data.eredmenyek)
            {
                listBox1.Items.Add(item.Versenyzo.Fnev);
            }
        }

        private void kiléToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }


        public static List<Eredmeny> LoadFromCsv(string filename)
        {
            List<Eredmeny> result = new List<Eredmeny>();

            FileStream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
            StreamReader streamReader = new StreamReader(fileStream);

            string line = streamReader.ReadLine();
            line = streamReader.ReadLine();

            while (line != null)
            {
                string[] adatok = line.Split(';');
                int fid = int.Parse(adatok[0]);
                string fnev = adatok[1];
                int szulev = int.Parse(adatok[2]);
                int szulho = int.Parse(adatok[3]);
                int csapat = int.Parse(adatok[4]);
                int ffi = int.Parse(adatok[5]);

                int kor = int.Parse(adatok[6]);
                int ido = int.Parse(adatok[7]);


                Futo futo = new Futo(fid, fnev, szulev, szulho, csapat, ffi);
                Eredmeny eredmeny = new Eredmeny(futo, kor, ido);

                result.Add(eredmeny);
                line = streamReader.ReadLine();
            }

            streamReader.Close();
            fileStream.Close();

            return result;
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int index = listBox1.SelectedIndex;
            textBox1.Text = Data.eredmenyek[index].Versenyzo.Fnev;
            textBox2.Text = $"{Data.eredmenyek[index].Versenyzo.Fid}";
            textBox3.Text = $"{Data.eredmenyek[index].Versenyzo.Szulev}. {Data.eredmenyek[index].Versenyzo.Szulho}";
            textBox4.Text = $"{Data.eredmenyek[index].Versenyzo.Csapat}";
            textBox5.Text = $"{Data.eredmenyek[index].Kor}";
            textBox6.Text = $"{Data.eredmenyek[index].Ido}";

        }

        public static class Data
        {
            public static List<Eredmeny> eredmenyek = new List<Eredmeny>();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            listBox2.Items.Clear();

            int csapatszam = Int32.Parse(textBox4.Text);

            foreach (var item in Data.eredmenyek)
            {
                if (item.Versenyzo.Csapat == csapatszam)
                {
                    listBox2.Items.Add(item.Versenyzo.Fnev);
                }
            }
        }
    }


    public class Futo
    {
        public int Fid;
        public string Fnev;
        public int Szulev;
        public int Szulho;
        public int Csapat;
        public int Ffi; //1 - férfi || 0 - nő
        public Futo(int fid, string fnev, int szulev, int szulho, int csapat, int ffi)
        {
            Fid = fid;
            Fnev = fnev;
            Szulev = szulev;
            Szulho = szulho;
            Csapat = csapat;
            Ffi = ffi;
        }
    }

    public class Eredmeny
    {
        public Futo Versenyzo;
        public int Kor;
        public int Ido;
        public Eredmeny(Futo versenyzo, int kor, int ido)
        {
            Versenyzo = versenyzo;
            Kor = kor;
            Ido = ido;
        }
    }
}
