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 MySql.Data.MySqlClient;

namespace lr3
{
    public partial class Form6 : Form
    {
        private MySqlConnection con;
        public Form6(MySqlConnection c)
        {
            InitializeComponent();
            con = c;
            fill_grid("SELECT * FROM `viddilu`;", dataGridView1,
          new string[] { "id" },//перелічуємо назви стовпців, які потрібно приховати
                new string[] { "viddil" },//перелічуємо назви стовпців транслітом
                new string[] { "Назва" });
        }

        private void fill_grid(string q, DataGridView d) 
        { 
            DataTable dt = new DataTable();
            if (con.State.ToString() != "Open") con.Open();
            MySqlCommand com = new MySqlCommand(q, con);
            MySqlDataReader dr = com.ExecuteReader(); 
            dt.Load(dr);
            d.DataSource = dt;
            dr.Close();
        }

        private void fill_grid(string q, DataGridView d, string[] f, string[] wn, string[] nn)
        { //Виконуємо запит і відображаємо результат на сітці та ховаємо у відображенні стовпці f
            //та переіменовуємо стовпці wn в nn
            fill_grid(q, d, f); // викликаємо перевантажену функцію яка заповнює сітку та ховає "непотрібні" поля
            for (int i = 0; i <= wn.Length - 1; i++)
            { //перебираємо кожне значення в wn
                d.Columns[wn[i]].HeaderText = nn[i];//присвоюємо стовпцю з назвою елемента wn нову назву з nn
            }

        }

        //=-=-=-=-=-=-=-= Перше перевантаження функції (тільки приховуємо)
        private void fill_grid(string q, DataGridView d, string[] f)
        { //Виконуємо запит і відображаємо результат на сітці та ховаємо у відображенні стовпці f
            fill_grid(q, d);//викликаємо перевантажену функцію, яка заповнює сітку
            foreach (string fn in f) //перебераємо всі значення f
            {
                d.Columns[fn].Visible = false;//ховаємо заданий стовпець
            }
        }

        private void run_query(string q) 
        {
            if (con.State.ToString() != "Open") con.Open();
            MySqlCommand com = new MySqlCommand(q, con);
            com.ExecuteNonQuery(); 
        }

        private void редагуватиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox6.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["viddil"].Value + "";
            tabControl1.SelectedIndex = 1;
        }

        private void видалитиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string id = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value + ""; 
            if (id != "")
            {
                run_query("DELETE FROM `viddilu` WHERE `id`=" + id + ";");
                fill_grid("SELECT * FROM `viddilu`;", dataGridView1,
          new string[] { "id" },//перелічуємо назви стовпців, які потрібно приховати
                new string[] { "viddil" },//перелічуємо назви стовпців транслітом
                new string[] { "Назва" }); 
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            string s = textBox1.Text + "";
            fill_grid("SELECT * FROM `viddilu` WHERE `viddil` LIKE '%" + s + "%';", dataGridView1,
          new string[] { "id" },//перелічуємо назви стовпців, які потрібно приховати
                new string[] { "viddil" },//перелічуємо назви стовпців транслітом
                new string[] { "Назва" });
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
        }

        private void button3_Click(object sender, EventArgs e)
        {
            string viddil = textBox3.Text + "";
            run_query("INSERT INTO `viddilu` VALUES (NULL,'" + viddil + "');");
            fill_grid("SELECT * FROM `viddilu`;", dataGridView1,
          new string[] { "id" },//перелічуємо назви стовпців, які потрібно приховати
                new string[] { "viddil" },//перелічуємо назви стовпців транслітом
                new string[] { "Назва" });
            textBox3.Text = ""; 
        }

        private void button4_Click(object sender, EventArgs e)
        {
            string viddil = textBox6.Text;  
            string id = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["id"].Value + "";
            run_query("UPDATE `viddilu` SET `viddil`='" + viddil + "' WHERE `id`=" + id + ";");
            fill_grid("SELECT * FROM `viddilu`;", dataGridView1,
          new string[] { "id" },//перелічуємо назви стовпців, які потрібно приховати
                new string[] { "viddil" },//перелічуємо назви стовпців транслітом
                new string[] { "Назва" });
            button5_Click(this, null);
        }

        private void button5_Click(object sender, EventArgs e)
        {
            textBox6.Text = ""; 
            tabControl1.SelectedIndex = 0;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void textBox4_TextChanged(object sender, EventArgs e)
        {

        }

        private void Form6_Load(object sender, EventArgs e)
        {

        }
    }
}
