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;
using DevComponents.DotNetBar;
using Transport.BLL;


namespace Transport
{
    public partial class city : Office2007Form
    {
        public city()
        {
            InitializeComponent();
        }


        //   متد پر کردن اطلاعات جدول شهر ها
        public void FillDataGrid()
        {
            DataTable ResultTable = bll_city.SelectAllRecord("tbl_city");

            dgv_city.DataSource = ResultTable;

            dgv_city.Columns[0].HeaderText = "شناسه شهر";
            dgv_city.Columns[1].HeaderText = "نام شهر";
            dgv_city.Columns[0].Visible = false;
            special_class.setRowNumber(dgv_city);
        }


        // متد مقداردهی خاصیت های فرم ویرایش شهر
        public void Fill_EditCity_Properties()
        {
            if (dgv_city.Rows.Count > 0)
            {
                // تنظیم شناسه شهر و قرار دادن در یک برچسب برای عملیات حذف
                lbl_city_id.Text = dgv_city.Rows[dgv_city.CurrentRow.Index].Cells[0].Value.ToString();

                //********************************************************
                // تنظیم شناسه کد شهر
                edit_city.city_id = dgv_city.Rows[dgv_city.CurrentRow.Index].Cells[0].Value.ToString();

                // تنظیم  نام شهر
                edit_city.city_name= dgv_city.Rows[dgv_city.CurrentRow.Index].Cells[1].Value.ToString();

              

            }
        }

        // متد بارگذاری فرم شهرها
        private void city_Load(object sender, EventArgs e)
        {
            FillDataGrid();
            btn_new.Focus();
          
        }

        // متد دکمه شهر جدید
        private void btn_new_Click(object sender, EventArgs e)
        {
            edit_city.Is_Action_Edit = false;
            edit_city frm_edit_city = new edit_city();
            frm_edit_city.ShowDialog();
        }

        // متد دکمه ویرایش شهر
        private void btn_edit_Click(object sender, EventArgs e)
        {
            if (dgv_city.Rows.Count > 0)
            {
                Fill_EditCity_Properties();
                edit_city.Is_Action_Edit = true;
                edit_city frm_edit_city = new edit_city();
                frm_edit_city.ShowDialog();
            } 
        }

        // متد دکمه بستن فرم شهرها
        private void btn_back_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        // متد دکمه حذف شهر
        private void btn_delete_Click(object sender, EventArgs e)
        {
            if (dgv_city.Rows.Count > 0)
            {
                try
                {
                    string City_ID = lbl_city_id.Text;

                    if (!bll_city.checkRecordExist("tbl_company", "company_city_id", City_ID))
                    {


                        if (FMessegeBox.FarsiMessegeBox.Show("آیا از حذف اطلاعات این شهر مطمئن هستید ؟", "تایید حذف اطلاعات", FMessegeBox.FMessegeBoxButtons.YesNo, FMessegeBox.FMessegeBoxIcons.Question) == DialogResult.Yes)
                        {

                            string Query = "DELETE FROM tbl_city WHERE city_id=" + City_ID;

                            bool result = bll_city.RunQuery(Query);
                            if (result)
                            {
                                lblMessage.ForeColor = Color.Green;
                                lblMessage.Text = "اطلاعات با موفقيت حذف شد";
                            }
                            else
                            {
                                lblMessage.ForeColor = Color.Red;
                                lblMessage.Text = "خطا در حذف اطلاعات.لطفا دوباره سعي نماييد";
                            }
                            FillDataGrid();
                        }
                    }
                    else
                    {
                        lblMessage.ForeColor = Color.Red;
                        lblMessage.Text = "امکان حذف وجود ندارد . این شهر دارای شرکت می باشد";
                    }
                }
                catch (Exception)
                {
                    lblMessage.ForeColor = Color.Red;
                    lblMessage.Text = "لطفاً يک رکورد را براي حذف انتخاب کنيد";
                }



            }
        }

        //متد رویداد یل اینتر دیتاگرید
        private void dgv_city_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            Fill_EditCity_Properties();
        }

        //متغیر استاتیک برای نگهداری رشته پرس و چو
        public static string SQLQueryParameter = "";

        // متد رویداد تکست چنج فیلد جستجوی شهر
        private void txt_search_TextChanged(object sender, EventArgs e)
        {
              SQLQueryParameter = string.Format("SELECT * FROM tbl_city WHERE city_name like '%{0}%' ", txt_search.Text);
              dgv_city.DataSource = bll_city.search_in_city(SQLQueryParameter);
              special_class.setRowNumber(dgv_city);
        }

        // متد رویداد اکتیو شدن فرم شهرها
        private void city_Activated(object sender, EventArgs e)
        {
            FillDataGrid();
           //special_class.setRowNumber(dgv_city);
        }
        
        // متد روداد کی داوون فرم شهرها
        private void city_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode==Keys.F3)
            {
                txt_search.Focus();
            }
        }

        private void dgv_city_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
           // dgv_city.Rows[e.RowIndex].HeaderCell.Value = "23".ToString("D2");
        }
    }
}
