protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            //Lấy về chỉ số dòng của khách vừa chọn
            int d = e.RowIndex;
            //Lấy về mã khách hàng có chỉ số là d trên GridView1
            // long mkh = int.Parse(GridView1.Rows[d].Cells[1].Text);

            QlSachDbDataContext db = new QlSachDbDataContext();
            var a = GridView1.Rows.Count;
            ChiTietHoaDon cthd = db.ChiTietHoaDons.Single(p => p.MaChiTietHD == int.Parse(GridView1.Rows[d].Cells[9].Text));
            long mahd = cthd.MaHoaDon;
            db.ChiTietHoaDons.DeleteOnSubmit(cthd);
            db.SubmitChanges();
            if (!db.ChiTietHoaDons.Any(p => p.MaHoaDon == mahd))
            {
                hoadon hd = db.hoadons.Single(p => p.MaHoaDon == mahd);
                db.hoadons.DeleteOnSubmit(hd);
                db.SubmitChanges();
            }
            ////Lọc ra khách hàng có mà là mkh
            //if(!db.hoadons.Any(p=>p.makh==mkh))
            //{
            //    KhachHang kh = db.KhachHangs.Single(p => p.Makh == mkh);
            //    db.KhachHangs.DeleteOnSubmit(kh);//Xóa khách hàng
            //    db.SubmitChanges();
            //}

            BindData();


        }
        protected void Page_Load(object sender, EventArgs e)
        {
            
            //Lấy mã sách cần xóa
            string ms = Request.QueryString["ms"];
            QlSachDbDataContext db = new QlSachDbDataContext();
            //Lọc ra sách có mã cần xóa
            sach s = db.saches.Single(p => p.masach == ms);
            //Lấy đường dẫn file ảnh cần xóa
            if (!string.IsNullOrEmpty(s.anh))
            {
                string dd = Server.MapPath(s.anh);
                //Xóa file ảnh trên server

                //************

                File.Delete(dd);
            }

            //Xóa sách có mã sách =ms
            db.saches.DeleteOnSubmit(s);
            //Lưu lại vào csdl
            db.SubmitChanges();
            Response.Redirect("Admin.aspx");
        }
        protected void btSua_Click(object sender, EventArgs e)
        {
            if(!ThongTinDayDu())
            {
                Response.Write("<script>alert('Vui lòng điển đầy đủ thông tin!'); </script>");
                return;
            }

            QlSachDbDataContext db = new QlSachDbDataContext();
            DangNhap q = db.DangNhaps.Single(p => p.TenDangNhap == drdID.SelectedValue.ToString());
            q.MatKhau = Encoding.MaHoa(Encoding.key,tbPass.Text);
            q.Quyen = rdAdmin.Checked;
            q.hoten = tbHoten.Text;
            db.SubmitChanges();
            //System.Windows.Forms.MessageBox.Show("Sửa thành công!");
            Response.Write("<script>alert('Sửa thành công!');</script>");
            drdID.DataSource = db.DangNhaps.Select(p => p.TenDangNhap);
            drdID.DataBind();
            drdID.SelectedValue = q.TenDangNhap;
        }
        protected void btXoa_Click(object sender, EventArgs e)
        {

            if (!ThongTinDayDu())
            {
                Response.Write("<script>alert('Vui lòng điển đầy đủ thông tin!');</script>");
                return;
            }
            else { 

            QlSachDbDataContext db = new QlSachDbDataContext();

            DangNhap dn = db.DangNhaps.Single(p => p.TenDangNhap == drdID.SelectedValue.ToString());
            if (dn.TenDangNhap != (string)Session["dn"])
            {
                db.DangNhaps.DeleteOnSubmit(dn);
                db.SubmitChanges();
                //System.Windows.Forms.MessageBox.Show("Xóa thành công!");
                Response.Redirect(Request.RawUrl);
            }
            else
            {
                //HttpContext.Current.Response.Write(
                //"<SCRIPT LANGUAGE=''JavaScript''>alert('Không thể xóa tài khoản đang sử dụng!')</SCRIPT>");


                //Type cstype = this.GetType();

                //// Get a ClientScriptManager reference from the Page class.
                //ClientScriptManager cs = Page.ClientScript;

                //// Check to see if the startup script is already registered.
                //if (!cs.IsStartupScriptRegistered(cstype, "PopupScript"))
                //{
                //    String cstext = "alert('Không thể xóa tài khoản đang sử dụng!');";
                //    cs.RegisterStartupScript(cstype, "PopupScript", cstext, true);
                //}
                Response.Write("<script>alert(\"Không thể xóa tài khoản đang sử dụng!\")</script>");
            }
            }
        }
 protected void btLuu_Click(object sender, EventArgs e)
 {
     string ms = Request.QueryString["ms"];
     db = new QlSachDbDataContext();
     //Lọc ra sách có mã cần sửa
     s = db.saches.Single(p => p.masach == ms);
     s.masach = txtms.Text;
     s.tensach = txtts.Text;
     s.tacgia = txttg.Text;
     s.gia = int.Parse(txtgia.Text);
     s.soluong = int.Parse(txtsl.Text);
     s.maloai = DMaloai.Text;
     if (FileUpload1.FileName != "")
     {//UpLoad file ảnh lên server
         FileUpload1.SaveAs(Server.MapPath(@"Image_sach/" +FileUpload1.FileName));
        System.IO.File.Delete(Server.MapPath(s.anh));
         s.anh = @"Image_sach/" + FileUpload1.FileName;
         Image1.ImageUrl = s.anh;
     }
     db.SubmitChanges();
     Response.Redirect("Admin.aspx");
 }
        protected void btSua_Click(object sender, EventArgs e)
        {

            QlSachDbDataContext db = new QlSachDbDataContext();
            loai q = db.loais.Single(p => p.tenloai == DropDownList1.SelectedValue.ToString());
            if (!db.loais.Any(p => p.tenloai != q.tenloai && p.tenloai == tbTenloai.Text))
            {
                q.tenloai = tbTenloai.Text;
                q.madanhmuc = drdDanhmuc.SelectedValue;
                db.SubmitChanges();
                //System.Windows.Forms.MessageBox.Show("Sửa thành công!");
                Response.Write("<script>alert('Sửa thành công!')</script>");
                var a = db.loais.Select(p => new { p.tenloai, p.maloai });

                DropDownList1.DataSource = a.Select(p => p.tenloai);
                DropDownList1.DataBind();
                DropDownList1.SelectedValue = tbTenloai.Text;
                //Response.Redirect(Request.RawUrl);
            }
            else
                lbTen.Visible = true;

        }
        protected void btThem_Click(object sender, EventArgs e)
        {
            lbID.Visible = false;
            QlSachDbDataContext db = new QlSachDbDataContext();
            if (btThem.Text == "Thêm mới...")
            {
                tbID.Enabled = true;
                tbID.Text = "";
                tbHoten.Text = "";
                tbPass.Text = "";
                btSua.Enabled = false;
                btXoa.Enabled = false;
                rdAdmin.Checked = false;
                rdNormal.Checked = !rdAdmin.Checked;
                btThem.Text = "Thêm";
            }
            else
            {
                if (!db.DangNhaps.Any(p => p.TenDangNhap == tbID.Text))
                {
                    DangNhap dn = new DangNhap();
                    dn.TenDangNhap = tbID.Text;
                    dn.MatKhau = Encoding.MaHoa(Encoding.key,tbPass.Text);
                    dn.hoten = tbHoten.Text;
                    dn.Quyen = rdAdmin.Checked;
                    db.DangNhaps.InsertOnSubmit(dn);
                    db.SubmitChanges();
                    //System.Windows.Forms.MessageBox.Show("Thêm tài khoản mới thành công!");
                    Response.Write("<script>alert('Thêm tài khoản mới thành công!')</script>");

                    Response.Redirect(Request.RawUrl);
                    
                    //btThem.Text = "Thêm";
                    //drdID.DataSource = db.DangNhaps.Select(p => p.TenDangNhap);
                    //drdID.DataBind();
                    //drdID.SelectedValue = tbID.Text;

                    //ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "DoPostBack", "__doPostBack(sender, e)", true);

                }
                else
                {
                    lbID.Visible = true;
                }
            }
        }
        protected void btThanhToan_Click(object sender, EventArgs e)
        {
            QlSachDbDataContext db = new QlSachDbDataContext();
            
            
            //admin hoặc chưa đăng nhập thì ko được đặt mua
            if ((string)Session["dn"] == "" )
            {

                Response.Redirect("ThongTinKhachHang.aspx");
            }
            else
            {
                var q = db.KhachHangs.Where(p => p.TenDangNhap == (string)Session["dn"]);
                var dn = db.DangNhaps.Single(p => p.TenDangNhap == (string)Session["dn"]);
                // Tài khoản chưa đang đăng nhập chưa có mã khách hàng, nghĩa là được tạo bởi admin, không phải tự đăng kí
                if (q.Count() == 0||dn.Quyen)
                {
                    Response.Write("<script>alert(\"Tài khoản này không được phép giao dịch!\");window.location='default.aspx'</script>");
                    return;
                }

                long makh = q.First().Makh;

                long mahd = 0;
                if (!db.hoadons.Any())
                    mahd = 0;
                else
                    mahd = db.hoadons.Max(p => p.MaHoaDon);
                hoadon hd = new hoadon();
                hd.MaHoaDon = mahd + 1;
                hd.makh = makh;
                hd.damua = false;
                hd.NgayMua = DateTime.Now;
                db.hoadons.InsertOnSubmit(hd);
                db.SubmitChanges();
                var dt = new DataTable();
                var gh = new Gio();
                gh = (Gio)Session["gh"];
                dt = gh.dt;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    var cthd = new ChiTietHoaDon();
                    long macthd;
                    if (!db.ChiTietHoaDons.Any())
                        macthd = 0;
                    else
                        macthd = db.ChiTietHoaDons.Max(p => p.MaChiTietHD);
                    cthd.MaChiTietHD = macthd + 1;
                    cthd.MaHoaDon = mahd + 1;
                    cthd.MaSach = dt.Rows[i]["masach"].ToString();
                    cthd.SoLuongMua = int.Parse(dt.Rows[i]["soluong"].ToString());

                    //Trừ số lượng sách mua
                    sach s = db.saches.Single(p => p.masach == cthd.MaSach);
                    s.soluong -= cthd.SoLuongMua;

                    db.ChiTietHoaDons.InsertOnSubmit(cthd);
                    db.SubmitChanges();
                    //Type cstype = this.GetType();

                    //// Get a ClientScriptManager reference from the Page class.
                    //ClientScriptManager cs = Page.ClientScript;

                    //// Check to see if the startup script is already registered.
                    //if (!cs.IsStartupScriptRegistered(cstype, "PopupScript"))
                    //{
                    //    String cstext = "alert('Thành toán thành công!');";
                    //    cs.RegisterStartupScript(cstype, "PopupScript", cstext, true);
                    //}
                   

                }
                Response.Write("<script>alert(\"Đặt mua thành công!\")</script>");

            }
            Session["gh"] = null;
            Response.Write("<script>window.location='default.aspx'</script>");
        }
        protected void btThem_Click(object sender, EventArgs e)
        {
            lbTen.Visible = false;
            lbMa.Visible = false;
            QlSachDbDataContext db = new QlSachDbDataContext();
            if (btThem.Text == "Thêm mới...")
            {
                tbMaloai.Enabled = true;
                tbMaloai.Text = "";
                tbTenloai.Text = "";
                DropDownList1.Visible = false;
                Label1.Visible = false;
                btSua.Enabled = false;
                btXoa.Enabled = false;
                btThem.Text = "Thêm";
            }
            else
            {
                bool kt = true;
                if (db.loais.Any(p => p.tenloai == tbTenloai.Text))
                {
                    lbTen.Visible = true;
                    kt = false;
                }
                if (db.loais.Any(p => p.maloai == tbMaloai.Text))
                {
                    lbMa.Visible = true;
                    kt = false;
                }
                if (kt == true)
                {
                    loai l = new loai();
                    l.tenloai = tbTenloai.Text;
                    l.maloai = tbMaloai.Text;
                    l.madanhmuc = drdDanhmuc.SelectedValue;
                    db.loais.InsertOnSubmit(l);
                    db.SubmitChanges();
                    //System.Windows.Forms.MessageBox.Show("Thêm loại mới thành công!");
                    Response.Write("<script>alert('Thêm loại mới thành công!')</script>");
                    //Response.Redirect(Request.RawUrl);

                    lbTen.Visible = false;
                    lbMa.Visible = false;
                    tbMaloai.Enabled = false;

                    DropDownList1.Visible = true;
                    Label1.Visible = true;
                    btSua.Enabled = true;
                    btXoa.Enabled = true;
                    btThem.Text = "Thêm mới...";
                    var a = db.loais.Select(p => new { p.tenloai, p.maloai });

                    DropDownList1.DataSource = a.Select(p => p.tenloai);
                    DropDownList1.DataBind();
                    DropDownList1.SelectedValue = tbTenloai.Text;

                }

            }

        }
        protected void btXoa_Click(object sender, EventArgs e)
        {
            QlSachDbDataContext db = new QlSachDbDataContext();

            loai q = db.loais.Single(p => p.tenloai == DropDownList1.SelectedValue.ToString());
            if (!db.saches.Any(p => p.maloai == q.maloai))
            {
                db.loais.DeleteOnSubmit(q);
                db.SubmitChanges();
                Response.Write("<script>alert('Xóa thành công!')</script>");
                //Response.Redirect(Request.RawUrl);
                var a = db.loais.Select(p => new { p.tenloai, p.maloai });

                DropDownList1.DataSource = a.Select(p => p.tenloai);
                DropDownList1.DataBind();
                tbMaloai.Text = a.First().maloai;
                tbTenloai.Text = a.First().tenloai;
            }
            else
            {
                //Type cstype = this.GetType();

                //// Get a ClientScriptManager reference from the Page class.
                //ClientScriptManager cs = Page.ClientScript;

                //// Check to see if the startup script is already registered.
                //if (!cs.IsStartupScriptRegistered(cstype, "PopupScript"))
                //{
                //    String cstext = "alert('Danh mục này vẫn chưa trống, hãy xóa các sách trong danh mục này trước!');";
                //    cs.RegisterStartupScript(cstype, "PopupScript", cstext, true);
                //}

                Response.Write("<script>alert('Danh mục này vẫn chưa trống, hãy xóa các sách trong danh mục này trước!')</script>");

                //Response.Redirect("Admin.aspx");
            }
        }
        protected void btLuu_Click(object sender, EventArgs e)
        {
            try
            {
                LHienthiloi.Visible = false;
                QlSachDbDataContext db = new QlSachDbDataContext();
                if (string.IsNullOrEmpty(ms) && db.saches.Any(p => p.masach == txtms.Text))
                {
                    lbMaSachTrung.Visible = true;
                    return;
                }
                lbMaSachTrung.Visible = false;
                //Tạo ra 1 lớp sách
                sach s;
                if (string.IsNullOrEmpty(ms))
                    s = new sach();
                else s = db.saches.Single(p => p.masach == ms);

                s.masach = txtms.Text.Replace("\"", "&quot;");
                s.tensach = txtts.Text.Replace("\"", "&quot;");
                s.tacgia = txttg.Text.Replace("\"", "&quot;");
                s.gia = int.Parse(txtgia.Text);
                s.soluong = int.Parse(txtsl.Text);
                s.sotap = txtSotap.Text;
                s.maloai = DMaloai.SelectedValue;
                s.NgayNhap = CNgayNhap.SelectedDate;
                
                s.tomtat = CKEditorControl1.Text.Replace("\"","&quot;");
                if (FileUpload1.FileName != "")
                { //UpLoad ảnh lên máy chủ
                    FileUpload1.SaveAs(Server.MapPath(@"Image_sach/"
                    + FileUpload1.FileName));
                    s.anh = @"Image_sach/" + FileUpload1.FileName;
                    Image1.ImageUrl = s.anh;
                }
                
                if (string.IsNullOrEmpty(ms))
                    db.saches.InsertOnSubmit(s); //Chèn thêm 1 sách
                
                db.SubmitChanges();//Lưu sách vào csdl
                Response.Write("<script>alert('Cập nhật thành công!')</script>");
            }
            catch (Exception tt)
            {
                LHienthiloi.Text = tt.Message; //Thông báo lỗi
                LHienthiloi.Visible = true;
            }
        }