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 VideoCloop
{
    public partial class frmUser : Form
    {
        public frmUser()
        {
            InitializeComponent();
        }

        private void frmUser_Load(object sender, EventArgs e)
        {
            Udf_FillGrid();
        }
        private void Udf_FillGrid()
        {
            Lsc_VideoClubDataContext db = new Lsc_VideoClubDataContext();
            var Query = from Row in db.tblUsers 
                        where Row.UsrName!="admin"
                        select Row;
            Dg_User.DataSource = Query;
            Dg_User.Columns[2].HeaderText = "کلمه عبور";
            Dg_User.Columns[1].HeaderText = "نام کاربری";
            Dg_User.Columns[0].Visible = false;
            Dg_User.Columns[3].Visible = false;

        }

        private void Btn_Insert_Click(object sender, EventArgs e)
        {
            try
            {
                Lsc_VideoClubDataContext db = new Lsc_VideoClubDataContext();
                tblUser add = new tblUser();
                add.UsrName  = Txt_UserName.Text;
                add.PsWord = Txt_Pass.Text;
                add.UsrType = 3;
                db.tblUsers .InsertOnSubmit(add);
                db.SubmitChanges();
                MessageBox.Show("عملیات درج انجام شد!");
                Udf_FillGrid();
            }
            catch (Exception ex)
            {
                MessageBox.Show("عملیات درج انجام نشد!");
            }
        }

        private void Dg_User_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            Lsc_VideoClubDataContext db = new Lsc_VideoClubDataContext();

            Int32 selectedCellCount = Dg_User.GetCellCount(DataGridViewElementStates.Selected);

            if (selectedCellCount > 0)
            {
                if (Dg_User.AreAllCellsSelected(true))
                {
                    MessageBox.Show("لطفاسلول از سطر مورد نظر راانتخاب نماييد!", "Selected Cells");
                }
                else
                {

                    for (int i = 0; i < selectedCellCount; i++)
                    {

                        Txt_UserName .Text = Dg_User.Rows[int.Parse(Dg_User.SelectedCells[i].RowIndex.ToString())].Cells[1].Value.ToString();
                        Txt_Pass .Text = Dg_User.Rows[int.Parse(Dg_User.SelectedCells[i].RowIndex.ToString())].Cells[2].Value.ToString();

                    }
                }
            }
        }

        private void Btn_Delete_Click(object sender, EventArgs e)
        {
            try
            {
                Lsc_VideoClubDataContext db = new Lsc_VideoClubDataContext();
                tblUser DelTbl = db.tblUsers.SingleOrDefault(n => n.UsrName == Dg_User.CurrentRow.Cells[1].Value.ToString());
                DialogResult result = MessageBox.Show("آیا شما می خواهیدکاربر " + DelTbl.UsrName  + "راحذف نمایید", "اخطار", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
                if (result == DialogResult.OK)
                {
                    db.tblUsers .DeleteOnSubmit(DelTbl);
                    db.SubmitChanges();
                    MessageBox.Show("عملیات  حذف انجام شد!");
                }
                Udf_FillGrid();
            }
            catch
            {
                MessageBox.Show("اشکالی در حذف رکورد پیش آمده است");
            }
        }

        private void Btn_Update_Click(object sender, EventArgs e)
        {
            try
            {
                Lsc_VideoClubDataContext db = new Lsc_VideoClubDataContext();
                tblUser UpdateTbl = db.tblUsers.Single(n => n.UsrName == Dg_User.CurrentRow.Cells[1].Value.ToString());
                UpdateTbl.UsrName  = Txt_UserName .Text;
                UpdateTbl.PsWord  = Txt_Pass.Text;
                db.SubmitChanges();
                MessageBox.Show("رکورد مورد نظر ویرایش شد");
                Udf_FillGrid();

            }
            catch (Exception ex)
            {
                MessageBox.Show("اشکالی در ویرایش رکورد پیش آمده است");
            }
        }
    }
}
