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

namespace Library
{
    public partial class FormBooks : Form
    {
        DataAccess da = new DataAccess();
        public FormBooks()
        {
            InitializeComponent();
        }

        private void FormBooks_Load(object sender, EventArgs e)
        {            
            dataGridView1.AutoGenerateColumns = false;
            da.Connect();
            DataTable dt = new DataTable();
            dt = da.Select("select * from category");
            comboBox2.DisplayMember = "catname";
            comboBox2.ValueMember = "catid";            
            comboBox2.DataSource = dt;
            da.DisConnect();
        }

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

        private void button4_Click(object sender, EventArgs e)
        {
            FormBooks_Load(null, null);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (dataGridView1.RowCount > 1)
            {
                DialogResult dr = MessageBox.Show("آیا مطمئن به حذف رکورد جاری می باشید ؟","پیام هشدار",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
                if (dr == DialogResult.Yes)
                {
                    string index = dataGridView1.CurrentRow.Cells["id"].Value.ToString();
                    string sql = "delete from book where bid={0}";
                    sql = string.Format(sql, index);
                    da.Connect();
                    da.DoCommand(sql);
                    da.DisConnect();
                    FormBooks_Load(null, null);
                }
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            if (txtsearch.Text == "")
            {
                MessageBox.Show("لطفا فیلد جستجو را پر نمائید!", "پیام خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            da.Connect();
            DataTable dt = new DataTable();
            string sql;
            switch (comboBox1.Text)
            {
                case "شماره" :
                    sql = "select * from book where bid={0}";
                    sql = string.Format(sql,txtsearch.Text);
                    dt = da.Select(sql);
                    if (dt.Rows.Count == 0)
                    {
                        MessageBox.Show("چنین شماره ای وجود ندارد لطفا دوباره سعی نمائید","پیام خطا",MessageBoxButtons.OK,MessageBoxIcon.Error);
                        da.DisConnect();
                        return;
                    }
                    dataGridView1.DataSource = dt;
                    break;
                case "نام کتاب":
                    sql = "select * from book where bname=N'{0}'";
                    sql = string.Format(sql, txtsearch.Text);
                    dt = da.Select(sql);
                    if (dt.Rows.Count == 0)
                    {
                        MessageBox.Show("چنین نام کتابی وجود ندارد لطفا دوباره سعی نمائید", "پیام خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        da.DisConnect();
                        return;
                    }
                    dataGridView1.DataSource = dt;
                    break;
                case "نام نویسنده":
                    sql = "select * from book where bauthor=N'{0}'";
                    sql = string.Format(sql, txtsearch.Text);
                    dt = da.Select(sql);
                    if (dt.Rows.Count == 0)
                    {
                        MessageBox.Show("چنین نویسنده وجود ندارد لطفا دوباره سعی نمائید", "پیام خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        da.DisConnect();
                        return;
                    }
                    dataGridView1.DataSource = dt;
                    break;
                case "نام مترجم":
                    sql = "select * from book where btranslate=N'{0}'";
                    sql = string.Format(sql, txtsearch.Text);
                    dt = da.Select(sql);
                    if (dt.Rows.Count == 0)
                    {
                        da.DisConnect();
                        MessageBox.Show("چنین مترجمی وجود ندارد لطفا دوباره سعی نمائید", "پیام خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    dataGridView1.DataSource = dt;
                    break;
            }
            da.DisConnect();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            FormBook_Add fe = new FormBook_Add();
            fe.ShowDialog();
            FormBooks_Load(null,null);
        }

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            da.DisConnect();
            int index = Int32.Parse(comboBox2.SelectedValue.ToString());
            da.Connect();
            DataTable dt = new DataTable();
            string sql = "select * from book,category where book.catid_fk = category.catid and catid_fk={0}";
            sql = string.Format(sql,index);
            dt = da.Select(sql);
            da.DisConnect();
            dataGridView1.DataSource = dt;
            lblcount.Text = (dataGridView1.RowCount - 1).ToString();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            da.Connect();
            DataTable dt = new DataTable();
            string index = dataGridView1.CurrentRow.Cells["id"].Value.ToString();
            string sql = "select * from book where bid={0}";
            sql = string.Format(sql,index);
            dt = da.Select(sql);
            FormBook_Edit fe = new FormBook_Edit();
            fe.txtauthor.Text=dt.Rows[0]["bauthor"].ToString();
            fe.txtcount.Text=dt.Rows[0]["bcount"].ToString();
            fe.txtname.Text=dt.Rows[0]["bname"].ToString();
            fe.txttranslate.Text=dt.Rows[0]["btranslate"].ToString();
            fe.txtid.Text = dt.Rows[0]["bid"].ToString();
            if (dt.Rows[0]["isfarsi"].ToString() == "False")
                fe.panel1.Visible = true;
            sql = "select * from category";
            dt = da.Select(sql);
            fe.comboBox1.DisplayMember = "catname";
            fe.comboBox1.ValueMember = "catid";
            fe.comboBox1.DataSource = dt;
            da.DisConnect();
            fe.ShowDialog();
            FormBooks_Load(null, null);
        }

        private void buttonX1_Click(object sender, EventArgs e)
        {
            if (txtsearch.Text == "")
            {
                MessageBox.Show("لطفا فیلد جستجو را پر نمائید!", "پیام خطا", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            da.Connect();
            DataTable dt = new DataTable();
            string sql;
            switch (comboBox1.Text)
            {
                case "شماره" :
                    sql = "select * from book where bid={0}";
                    sql = string.Format(sql,txtsearch.Text);
                    dt = da.Select(sql);
                    if (dt.Rows.Count == 0)
                    {
                        MessageBox.Show("چنین شماره ای وجود ندارد لطفا دوباره سعی نمائید","پیام خطا",MessageBoxButtons.OK,MessageBoxIcon.Error);
                        da.DisConnect();
                        return;
                    }
                    dataGridView1.DataSource = dt;
                    break;
                case "نام کتاب":
                    sql = "select * from book where bname=N'{0}'";
                    sql = string.Format(sql, txtsearch.Text);
                    dt = da.Select(sql);
                    if (dt.Rows.Count == 0)
                    {
                        MessageBox.Show("چنین نام کتابی وجود ندارد لطفا دوباره سعی نمائید", "پیام خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        da.DisConnect();
                        return;
                    }
                    dataGridView1.DataSource = dt;
                    break;
                case "نام نویسنده":
                    sql = "select * from book where bauthor=N'{0}'";
                    sql = string.Format(sql, txtsearch.Text);
                    dt = da.Select(sql);
                    if (dt.Rows.Count == 0)
                    {
                        MessageBox.Show("چنین نویسنده وجود ندارد لطفا دوباره سعی نمائید", "پیام خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        da.DisConnect();
                        return;
                    }
                    dataGridView1.DataSource = dt;
                    break;
                case "نام مترجم":
                    sql = "select * from book where btranslate=N'{0}'";
                    sql = string.Format(sql, txtsearch.Text);
                    dt = da.Select(sql);
                    if (dt.Rows.Count == 0)
                    {
                        da.DisConnect();
                        MessageBox.Show("چنین مترجمی وجود ندارد لطفا دوباره سعی نمائید", "پیام خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    dataGridView1.DataSource = dt;
                    break;
            }
            da.DisConnect();
        }

        private void buttonX2_Click(object sender, EventArgs e)
        {
            FormBook_Add fe = new FormBook_Add();
            fe.ShowDialog();
            FormBooks_Load(null,null);
        }

        private void buttonX3_Click(object sender, EventArgs e)
        {
            da.Connect();
            DataTable dt = new DataTable();
            string index = dataGridView1.CurrentRow.Cells["id"].Value.ToString();
            string sql = "select * from book where bid={0}";
            sql = string.Format(sql,index);
            dt = da.Select(sql);
            FormBook_Edit fe = new FormBook_Edit();
            fe.txtauthor.Text=dt.Rows[0]["bauthor"].ToString();
            fe.txtcount.Text=dt.Rows[0]["bcount"].ToString();
            fe.txtname.Text=dt.Rows[0]["bname"].ToString();
            fe.txttranslate.Text=dt.Rows[0]["btranslate"].ToString();
            fe.txtid.Text = dt.Rows[0]["bid"].ToString();
            if (dt.Rows[0]["isfarsi"].ToString() == "False")
                fe.panel1.Visible = true;
            sql = "select * from category";
            dt = da.Select(sql);
            fe.comboBox1.DisplayMember = "catname";
            fe.comboBox1.ValueMember = "catid";
            fe.comboBox1.DataSource = dt;
            da.DisConnect();
            fe.ShowDialog();
            FormBooks_Load(null, null);
        }

        private void buttonX4_Click(object sender, EventArgs e)
        {
            if (dataGridView1.RowCount > 1)
            {
                DialogResult dr = MessageBox.Show("آیا مطمئن به حذف رکورد جاری می باشید ؟", "پیام هشدار", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dr == DialogResult.Yes)
                {
                    string index = dataGridView1.CurrentRow.Cells["id"].Value.ToString();
                    string sql = "delete from book where bid={0}";
                    sql = string.Format(sql, index);
                    da.Connect();
                    da.DoCommand(sql);
                    da.DisConnect();
                    FormBooks_Load(null, null);
                }
        }
        }

        private void buttonX6_Click(object sender, EventArgs e)
        {
            FormBooks_Load(null, null);
        }

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