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

namespace RezerveBeliteHavaPeimaCS
{
    public partial class frmUserjadid : Form
    {
        int int_User =0;
        public frmUserjadid()
        {
            InitializeComponent();
        }
        /// <summary>
        /// تابع مربوط به درج کاربر جدید
        /// </summary>
        private void UDF_InsertUserjadid()
        {
            Lbl_Userjadid.Text = "";
            LSC_TADataContext db = new LSC_TADataContext();
            tblUserInfo tblUser = new tblUserInfo();
            try
            {
                tblUser.UserName = Txt_UserjadidName.Text.Trim();
                tblUser.PassWord = Txt_UserjadPass.Text.Trim();
                db.tblUserInfos.InsertOnSubmit(tblUser);
                db.SubmitChanges();
                Txt_UserjadidName.Text = "";
                Txt_UserjadPass.Text = "";
            }
            catch
            {
                Lbl_Userjadid.Text = "نام کاربری تکراری می باشد";
                Txt_UserjadidName.Text = "";
                Txt_UserjadPass.Text = "";
            }  
        }
        /// <summary>
        /// تابع مربوط به ویرایش کاربر جدید
        /// </summary>
        private void UDf_RefreshUserjadid()
        {
            LSC_TADataContext db = new LSC_TADataContext();
            var Query = from row in db.tblUserInfos
                        orderby row.userID descending
                        select new
                        {
                            row.UserName 
                        };
            Dgv_Userjadid.DataSource = Query;
        }
        /// <summary>
        /// تابع مربوط به حذف کاربر 
        /// </summary>
        private void UDF_DeleteUserjadid()
        {
            LSC_TADataContext db = new LSC_TADataContext();
            tblUserInfo tblUser =db.tblUserInfos.Single(n=>n.UserName==Txt_UserjadidName.Text.Trim());
            db.tblUserInfos.DeleteOnSubmit(tblUser);
            db.SubmitChanges();
            Txt_UserjadidName.Text = "";
            Txt_UserjadPass.Text = "";
        }
        private void frmUserjadid_Load(object sender, EventArgs e)
        {
            UDf_RefreshUserjadid();
            Pnl_Userjadid2.Visible = false;
        }
        private void Btn_UserjadidTaeed_Click(object sender, EventArgs e)
        {
            try
            {
                if (int_User == 1)
                {
                    Pnl_Userjadid1.Visible = true;
                    Pnl_Userjadid2.Visible = false;
                    UDF_InsertUserjadid();
                }
                else
                {
                    Pnl_Userjadid1.Visible = true;
                    Pnl_Userjadid2.Visible = false;
                    UDF_DeleteUserjadid();
                }
                UDf_RefreshUserjadid();
                Txt_UserjadPass.Enabled = true;
            }
            catch
            {
                MessageBox.Show("لطفا خطای به وجود آمده را برطرف نمایید");
            }
        }
        private void Btn_UserjadidLaghv_Click(object sender, EventArgs e)
        {
            try
            {
                Txt_UserjadPass.Enabled = true;
                Pnl_Userjadid1.Visible = true;
                Pnl_Userjadid2.Visible = false;
                UDf_RefreshUserjadid();
                Txt_UserjadidName.Text = "";
                Txt_UserjadPass.Text = "";
            }
            catch
            {
                MessageBox.Show("لطفا خطای به وجود آمده را برطرف نمایید");
            }
        }
        private void Btn_UserjadidInsert_Click(object sender, EventArgs e)
        { 
            if (Txt_UserjadidName.Text == "" || Txt_UserjadPass.Text == "")
            {
                MessageBox.Show("مقادیر فیلدها نمی توانند خالی باشند");
            }
            else
            {
                Pnl_Userjadid1.Visible = false;
                Pnl_Userjadid2.Visible = true;
                int_User = 1;
            }
        }
        private void Btn_UserjadidDelete_Click(object sender, EventArgs e)
        {
            if (Txt_UserjadidName.Text == "" && Txt_UserjadPass.Text == "")
            {
                MessageBox.Show("مقادیر فیلدها نمی توانند خالی باشند");
            }
            else
            {
                Txt_UserjadPass.Enabled = false;
                int_User = 2;
                Pnl_Userjadid1.Visible = false;
                Pnl_Userjadid2.Visible = true;
            }
        }
        private void Dgv_Userjadid_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            LSC_TADataContext db = new LSC_TADataContext();
            Int32 selectedCellCount = Dgv_Userjadid.GetCellCount(DataGridViewElementStates.Selected);
            if (selectedCellCount > 0)
            {
                if (Dgv_Userjadid.AreAllCellsSelected(true))
                {
                    MessageBox.Show("لطفاسلول از سطر مورد نظر راانتخاب نماييد!", "Selected Cells");
                }
                else
                {
                    for (int i = 0; i < selectedCellCount; i++)
                    {
                        Txt_UserjadidName.Text = Dgv_Userjadid.Rows[int.Parse(Dgv_Userjadid.SelectedCells[i].RowIndex.ToString())].Cells[0].Value.ToString();
                    }
                }
            }
        }
    }
}