public bool ThemChu(bool HoSoChinhThuc, string MaHoSo, string DanhXung, string HoTen, string NamSinh, string DiaChi, string DinhDanh, string SoDinhDanh, string NoiCap, string NgayCap, string QuocTich)
        {
            try
            {
                if (HoSoChinhThuc)
                {
                    tblChu chumoi = new tblChu();

                    chumoi.DanhXung = DanhXung;
                    chumoi.HoTen = HoTen;
                    chumoi.NamSinh = NamSinh;
                    chumoi.DiaChi = DiaChi;
                    chumoi.DinhDanh = DinhDanh;
                    chumoi.SoDinhDanh = SoDinhDanh;
                    chumoi.NoiCap = NoiCap;
                    chumoi.NgayCap = Convert.ToDateTime(NgayCap);
                    chumoi.QuocTich = QuocTich;

                    db.tblChus.Add(chumoi);
                    db.SaveChanges();

                    tblChuDangKyBienDong chuhoso = new tblChuDangKyBienDong();
                    chuhoso.MaChu = chumoi.MaChu;
                    chuhoso.MaDangKyBienDong = Convert.ToInt32(MaHoSo);
                    db.tblChuDangKyBienDongs.Add(chuhoso);
                    db.SaveChanges();
                }
                else
                {
                    tblChuDuBi chumoi = new tblChuDuBi();
                    chumoi.DanhXung = DanhXung;
                    chumoi.HoTen = HoTen;
                    chumoi.NamSinh = NamSinh;
                    chumoi.DiaChi = DiaChi;
                    chumoi.DinhDanh = DinhDanh;
                    chumoi.SoDinhDanh = SoDinhDanh;
                    chumoi.NoiCap = NoiCap;
                    if(NgayCap!="")
                    chumoi.NgayCap = Convert.ToDateTime(NgayCap);
                    chumoi.QuocTich = QuocTich;
                    db.tblChuDuBis.Add(chumoi);
                    db.SaveChanges();

                    tblChuDangKyBienDongDuBi chuhoso = new tblChuDangKyBienDongDuBi();
                    chuhoso.MaChu = chumoi.MaChu;
                    chuhoso.MaDangKyBienDong = Convert.ToInt32(MaHoSo);
                    db.tblChuDangKyBienDongDuBis.Add(chuhoso);
                    db.SaveChanges();

                }

                return true;
            }
            catch (Exception ex)
            {

                return false;
            }
        }
        /// <summary>
        ///     QUAN TRỌNG!
        ///     ĐÂY LÀ PHẦN CHẤP NHẬN BIẾN ĐỘNG, TẤT CẢ DỮ LIỆU CỦA MỘT BIẾN ĐỘNG TRONG CÁC BẢNG DỰ BỊ SẼ ĐƯỢC ĐƯA LÊN BẢNG CHÍNH THỨC!
        /// </summary>
        /// <param name="HoSoChinhThuc"></param>
        /// <param name="MaHoSo"></param>
        /// <param name="Machu"></param>
        /// <returns></returns>
        /// 
        public bool ChapNhanBienDong(string MaDangKyBienDong, string NgayNhanHoSo, string NguoiNhanHoSo, string SoTiepNhan, string Quyen)
        {
            try
            {
                DateTime _ngayNhanHoSo;
                if (NgayNhanHoSo != "")
                    _ngayNhanHoSo = Convert.ToDateTime(NgayNhanHoSo);
                else
                    _ngayNhanHoSo = DateTime.Now;

                long _maBD = long.Parse(MaDangKyBienDong);
                // lấy ra hồ sơ đăng ký biến động dự bị trên.
                tblDonXinDangKyBienDongDuBi DonDuBi = db.tblDonXinDangKyBienDongDuBis.SingleOrDefault(n => n.ID == _maBD);
                if (DonDuBi == null)
                {
                    // thong bao loi...
                    return false;
                }
                // kiểm tra thông tin tiếp nhận hồ sơ xem có chưa.
                if (NguoiNhanHoSo == "" || SoTiepNhan == "")
                {
                    // thong bao loi...
                    return false;
                }
                // kiểm tra loại đăng ký biến động.
                string LoaiBD = DonDuBi.LoaiBienDong;
                if (LoaiBD == null)
                {
                    // thong bao loi...
                    return false;
                }
                // TẠO HỒ SƠ BIẾN ĐỘNG CHÍNH THỨC.
                tblDonXinDangKyBienDong DonChinhThuc = new tblDonXinDangKyBienDong();
                DonChinhThuc.KinhGuiCoQuanChucNang=DonDuBi.TieuDeDon;
                DonChinhThuc.NguoiVietDon=DonDuBi.NguoiVietDon;
                DonChinhThuc.NgayVietDon=DonDuBi.NgayVietDon;
                DonChinhThuc.SoVaoSoCapGCN=DonDuBi.SoVaoSoCapGCN;
                DonChinhThuc.SoPhatHanhGCN=DonDuBi.SoPhatHanhGCN;
                DonChinhThuc.NgayCapGCN=DonDuBi.NgayCapGCN;
                DonChinhThuc.BienDongVe=DonDuBi.BienDongVe;
                DonChinhThuc.NoiDungGhiTrenGCNTruocKhiBienDong=DonDuBi.NoiDungGhiTrenGCNTruocKhiBienDong;
                DonChinhThuc.NoiDungSauKhiBienDong=DonDuBi.NoiDungSauKhiBienDong;
                DonChinhThuc.LyDoBienDong=DonDuBi.LyDoBienDong;
                DonChinhThuc.TinhHinhThucHienNghiaVuTaiChinh=DonDuBi.TinhHinhThucHienNghiaVuTaiChinh;
                DonChinhThuc.GiayToKemTheo=DonDuBi.GiayToKemTheo;
                DonChinhThuc.LoaiBienDong=DonDuBi.LoaiBienDong;
                DonChinhThuc.LoaiDoiTuongApDung = DonDuBi.LoaiDoiTuongApDung;

                DonChinhThuc.NgayNhanHoSo = _ngayNhanHoSo;
                DonChinhThuc.NguoiNhanHoSo = NguoiNhanHoSo;
                DonChinhThuc.SoTiepNhan = SoTiepNhan;
                DonChinhThuc.Quyen = Quyen;

                db.tblDonXinDangKyBienDongs.Add(DonChinhThuc);
                db.SaveChanges();
                string s = DonChinhThuc.MaDangKyBienDong.ToString();
                // nếu là đăng ký biến động loại 1
                if (LoaiBD == "1")
                {
                    // đã có hết ở hồ sơ kê khai dự bị nên tạm thời chưa phải làm gì.
                }
                // nếu là đăng ký cấp lại, cấp đổi
                else if (LoaiBD == "2")
                {
                    List<tblThuaDatThayDoiTrongBienDongDuBi> dstdtd = (from n in db.tblThuaDatThayDoiTrongBienDongDuBis
                                                                              where n.MaDangKyBienDong == _maBD
                                                                              select n).ToList();
                    if (dstdtd != null)
                    {
                        if (dstdtd.Count() > 0)
                        {
                            for (int i = 0; i < dstdtd.Count(); i++)
                            {
                                tblThuaDatThayDoiTrongBienDongDuBi tddb= (tblThuaDatThayDoiTrongBienDongDuBi)dstdtd[i];
                                tblThuaDatThayDoiTrongBienDong td = new tblThuaDatThayDoiTrongBienDong();
                                td.MaDangKyBienDong= DonChinhThuc.MaDangKyBienDong;
                                td.ToBanDo=tddb.ToBanDo;
                                td.SoThua=tddb.SoThua;
                                td.DienTich=tddb.DienTich;
                                td.NoiDungThayDoiKhac=tddb.NoiDungThayDoiKhac;
                                td.ToBanDoMoi=tddb.ToBanDoMoi;
                                td.SoThuaMoi=tddb.SoThuaMoi;
                                td.DienTichMoi=tddb.DienTichMoi;
                                td.NoiDungThayDoiKhacMoi = tddb.NoiDungThayDoiKhacMoi;

                                db.tblThuaDatThayDoiTrongBienDongs.Add(td);
                                db.SaveChanges();

                            }
                        }
                    }

                    List<tblThongTinTaiSanGanLienVoiDatTrongBienDongDuBi> dsts = (from n in db.tblThongTinTaiSanGanLienVoiDatTrongBienDongDuBis
                                                                                         where n.MaDangKyBienDong == _maBD
                                                                                         select n).ToList();
                    if (dsts != null)
                    {
                        if (dsts.Count() > 0)
                        {
                            for (int i = 0; i < dsts.Count(); i++)
                            {
                                tblThongTinTaiSanGanLienVoiDatTrongBienDongDuBi tsdb = (tblThongTinTaiSanGanLienVoiDatTrongBienDongDuBi)dsts[i];
                                tblThongTinTaiSanGanLienVoiDatTrongBienDong ts = new tblThongTinTaiSanGanLienVoiDatTrongBienDong();
                                ts.MaDangKyBienDong = DonChinhThuc.MaDangKyBienDong;
                                ts.LoaiTaiSan=tsdb.LoaiTaiSan;
                                ts.DienTichXayDung=tsdb.DienTichXayDung;
                                ts.NoiDungThayDoi=tsdb.NoiDungThayDoi;
                                ts.LoaiTaiSanMoi = tsdb.LoaiTaiSanMoi;
                                ts.DienTichXayDungMoi = tsdb.DienTichXayDungMoi;
                                ts.NoiDungThayDoiMoi = tsdb.NoiDungThayDoiMoi;

                                db.tblThongTinTaiSanGanLienVoiDatTrongBienDongs.Add(ts);
                                db.SaveChanges();
                            }
                        }
                    }
                }
                // nếu là đăng ký tách, hợp thửa.
                else if (LoaiBD == "3")
                {
                    tblThuaDatDeNghiTachThuaTrongBienDongTheoDon tdtt = db.tblThuaDatDeNghiTachThuaTrongBienDongTheoDons.SingleOrDefault(n => n.MaDangKyBienDong == _maBD);
                    if (tdtt != null)
                    {
                        tblThuaDatDeNghiTachThuaTrongBienDong td = new tblThuaDatDeNghiTachThuaTrongBienDong();
                        td.MaDangKyBienDong= DonChinhThuc.MaDangKyBienDong;
                        td.MaThuaDat = tdtt.MaThuaDat;
                        td.ToBanDo = tdtt.ToBanDo;
                        td.SoThua = tdtt.SoThua;
                        td.DiaChi = tdtt.DiaChi;
                        td.SoPhatHanhGCN = tdtt.SoPhatHanhGCN;
                        td.SoVaoSoCapGCN = tdtt.SoVaoSoCapGCN;
                        td.NgayCapGCN = tdtt.NgayCapGCN;
                        td.SoThuaConDeNghiTach = tdtt.SoThuaConDeNghiTach;
                        td.DienTichCon1 = tdtt.DienTichCon1;
                        td.DienTichCon2 = tdtt.DienTichCon2;

                        db.tblThuaDatDeNghiTachThuaTrongBienDongs.Add(td);
                        db.SaveChanges();
                    }

                    List<tblThuaDatDeNghiHopThuaTrongBienDongTheoDon> dstdht = (from n in db.tblThuaDatDeNghiHopThuaTrongBienDongTheoDons
                                                                                       where n.MaDangKyBienDong == _maBD
                                                                                       select n).ToList();
                    if (dstdht != null)
                    {
                        if (dstdht.Count() > 0)
                        {
                            for (int i = 0; i < dstdht.Count(); i++)
                            {
                                tblThuaDatDeNghiHopThuaTrongBienDongTheoDon htdb = dstdht[i];
                                tblThuaDatDeNghiHopThuaTrongBienDong ht = new tblThuaDatDeNghiHopThuaTrongBienDong();

                                ht.MaDangKyBienDong = DonChinhThuc.MaDangKyBienDong;
                                ht.MaThuaDat=htdb.MaThuaDat;
                                ht.ToBanDo=htdb.ToBanDo;
                                ht.SoThua=htdb.SoThua;
                                ht.DiaChi=htdb.DiaChi;
                                ht.SoPhatHanhGCN=htdb.SoPhatHanhGCN;
                                ht.SoVaoSoCapGCN=htdb.SoVaoSoCapGCN;
                                ht.NgayCapGCN = htdb.NgayCapGCN;

                                db.tblThuaDatDeNghiHopThuaTrongBienDongs.Add(ht);
                                db.SaveChanges();
                            }

                        }
                    }
                }
                // lưu Chủ nữa.
                List<tblChuDangKyBienDongDuBi> dschudb = (from chs in db.tblChuDangKyBienDongDuBis
                                                         where chs.MaDangKyBienDong == _maBD
                                                         select chs).ToList();

                if(dschudb != null)
                {
                    if (dschudb.Count() > 0)
                    {
                        for(int i=0;i<dschudb.Count(); i++)
                        {
                            tblChuDangKyBienDong chs = new tblChuDangKyBienDong();
                            chs.MaDangKyBienDong = DonChinhThuc.MaDangKyBienDong;
                            //chs.MaChu =// cập nhật ở dưới.

                            // tblChu
                            long _maChu =(long)dschudb[i].MaChu;
                            var ch = db.tblChuDuBis.SingleOrDefault(n => n.MaChu == _maChu);
                            if(ch != null)
                            {
                                tblChu chuMoi = new tblChu();
                                 // chuMoi.MaChu = ch.MaChu;
                                  chuMoi.DanhXung = ch.DanhXung;
                                  chuMoi.HoTen = ch.HoTen;
                                  chuMoi.NamSinh = ch.NamSinh;
                                  chuMoi.DiaChi = ch.DiaChi;
                                  chuMoi.DinhDanh = ch.DinhDanh;
                                  chuMoi.SoDinhDanh = ch.SoDinhDanh;
                                  chuMoi.NoiCap = ch.NoiCap;
                                  chuMoi.NgayCap = ch.NgayCap;
                                  chuMoi.QuocTich = ch.QuocTich;
                                  db.tblChus.Add(chuMoi);
                                  db.SaveChanges();

                                // quan trọng: bởi vì đến đây mã chủ mới được tạo ra và ta mới có thể gán được.
                                  chs.MaChu = chuMoi.MaChu;

                            }
                            //VẬY TRONG TRƯỜNG HỢP TA KHÔNG TẠO RA CHỦ MỚI MÀ LẤY NÓ TRONG DATABASE CHỦ CÓ SẴN THÌ SẼ CẦN SỬA THÊM...
                            //TA SẼ THỬ NGHIỆM DƯỚI ĐÂY, TUY NHIÊN CHƯA CHẮC CHẮN ĐÚNG!?
                            else
                            {
                                var TimChuDaCoSan = db.tblChus.FirstOrDefault(n => n.MaChu == _maChu);
                                if (TimChuDaCoSan != null)
                                {
                                    chs.MaChu = TimChuDaCoSan.MaChu; //hoặc có thể viết là = _maChu;
                                }
                            }

                            db.tblChuDangKyBienDongs.Add(chs);
                            db.SaveChanges();

                        }
                    }
                }

                XoaDuLieuBienDongDuBi(MaDangKyBienDong);
                return true;

            }
            catch (Exception ex)
            {
                string s = ex.Message;
                return false;
            }
        }
        public bool ThemChu(bool HoSoChinhThuc, string MaHoSo, string Machu)
        {
            try
            {
                long _maDangKyBienDong = long.Parse(MaHoSo);
                long _maChu = long.Parse(Machu);
                if (HoSoChinhThuc)
                {
                    tblChu chu = db.tblChus.SingleOrDefault(n => n.MaChu == _maChu);
                    if(chu != null)
                    {
                        tblChuDangKyBienDong chuhoso = new tblChuDangKyBienDong();
                        chuhoso.MaChu = _maChu;
                        chuhoso.MaDangKyBienDong = _maDangKyBienDong;
                        db.tblChuDangKyBienDongs.Add(chuhoso);
                        db.SaveChanges();
                    }
                }
                else
                {
                    tblChuDuBi chu = db.tblChuDuBis.SingleOrDefault(n => n.MaChu == _maChu);
                    if (chu != null)
                    {
                        tblChuDangKyBienDongDuBi chuhoso = new tblChuDangKyBienDongDuBi();
                        chuhoso.MaChu = _maChu;
                        chuhoso.MaDangKyBienDong = _maDangKyBienDong;
                        db.tblChuDangKyBienDongDuBis.Add(chuhoso);
                        db.SaveChanges();
                    }
                }
                return true;
            }
            catch (Exception)
            {

                return false;
            }
        }