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 edit_city : Office2007Form 
    {
        public edit_city()
        {
            InitializeComponent();
        }

        #region فیلد های لازم برای ویرایش
        public static bool Is_Action_Edit { get; set; }
        public static string city_id { get; set; }
        public static string city_name { get; set; }
        #endregion


        // خواندن تنظیمات برنامه - اینکه آیا فیلدها بعد از ذخیره یا ویرایش پاک شوند یا خیر
        public bool IsClearNeeded()
        {

            System.Data.DataTable settingsDT = bll_settings.Select_App_Settings();
            bool ClearResult = false;

            if (settingsDT.Rows.Count > 0)
            {
                string clear_fields = settingsDT.Rows[0].ItemArray[1].ToString();

                if (clear_fields == "0")
                {
                    return true;
                }

            }

            return ClearResult;
        }

        // پرکردن فیلدها با مقادیر ارسال شده از فرم شهرها
        private void FillFieldsWithProperties()
        {
            txt_city_name.Text = city_name;
        }

        // متدی برای پاک کردن فیلدهای فرم شهر
        private void ClearAllFields()
        {
            txt_city_name.Text = string.Empty;
        }

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

            if (Is_Action_Edit)
            {
                FillFieldsWithProperties();
                btn_save.Text = "ثبت تغییرات";
            }
            else
            {
                btn_save.Text = "ذخیره";
            }
        }

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

        // متد دکمه ذخیره یا ویرایش شهر 
        private void btn_save_Click(object sender, EventArgs e)
        {
            if (btn_save.Text == "ذخیره")
            {
                 if (txt_city_name.Text != "" )
                {

                    //تعریف متغیرهای مورد نیاز برای نگهداری فیلدهای فرم شهر
                    string city_name= "";

                    city_name = txt_city_name.Text;


                    // ایجاد رشته پرس و جو برای ذخیره اطلاعات شهر
                    string SQLQuery = string.Format("INSERT INTO tbl_city(city_name) VALUES('{0}')",city_name);

                    
                    //تعریف یک متغیر برای نگهداری نتیجه عملیات ذخیره سازی
                    bool QueryResult = false;
                    QueryResult = bll_city.RunQuery(SQLQuery);

                    if (QueryResult)
                    {
                        lblMessage.ForeColor = Color.Green;
                        lblMessage.Text = "ذخیره سازی اطلاعات با موفقیت انجام شد";

                        if (IsClearNeeded())
                        {
                            ClearAllFields();
                        }
                        txt_city_name.Focus();
                    }
                    else
                    {
                        lblMessage.ForeColor = Color.Red;
                        lblMessage.Text = "خطا در ذخیره سازی اطلاعات";
                    }
                }
                else
                {
                    lblMessage.Text = "لطفاً اطلاعات الزامی را پر کنید";
                    lblMessage.ForeColor = Color.Red;
                }
            }
            else
            {
               if (txt_city_name.Text != "")
                {

                    //تعریف متغیرهای مورد نیاز برای نگهداری فیلدهای فرم شهر
                    string city_name= "";
                    city_name = txt_city_name.Text;

                    // ایجاد رشته پرس و جو برای ذخیره اطلاعات شهر
                    string SQLQuery = string.Format("UPDATE tbl_city SET city_name='{0}' WHERE city_id={1}", city_name, city_id);

                    //MessageBox.Show(SQLQuery);

                    //تعریف یک متغیر برای نگهداری نتیجه عملیات ذخیره سازی
                    bool QueryResult = false;
                    QueryResult = bll_city.RunQuery(SQLQuery);

                    if (QueryResult)
                    {
                        lblMessage.ForeColor = Color.Green;
                        lblMessage.Text = "ویرایش اطلاعات با موفقیت انجام شد";
                        txt_city_name.Focus();
                    }
                    else
                    {
                        lblMessage.ForeColor = Color.Red;
                        lblMessage.Text = "خطا در ویرایش اطلاعات";
                    }
                }
                else
                {
                    lblMessage.Text = "لطفاً اطلاعات الزامی را پر کنید";
                    lblMessage.ForeColor = Color.Red;
                }
            }
        }
    }
}
