private async void btnAddNew_Click(object sender, EventArgs e)
        {
            if (_model.ChangeTracker.HasChanges() && ThongBao.XacNhan("Lưu trước khi nhập mới", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                if (!await this.LuuDuLieu())
                {
                    return;
                }
            }

            _model        = new QuanLyDoiModel();
            NguoiXuatCanh = new NGUOI();
            nGUOIBindingSource.DataSource = NguoiXuatCanh;
            xUAT_CANH_TRAI_PHEPBindingSource.DataSource = _model.XUAT_CANH_TRAI_PHEP.Local;
        }
        public async Task InitAsync(int?id_nguoi)
        {
            _isInit       = true;
            NguoiXuatCanh = await _model.NGUOI.FirstOrDefaultAsync(p => p.ID == id_nguoi);

            if (NguoiXuatCanh == null)
            {
                NguoiXuatCanh = new NGUOI();
            }
            nGUOIBindingSource.DataSource = NguoiXuatCanh;

            await _model.XUAT_CANH_TRAI_PHEP.Where(p => p.ID_NGUOI == id_nguoi).LoadAsync();

            xUAT_CANH_TRAI_PHEPBindingSource.DataSource = _model.XUAT_CANH_TRAI_PHEP.Local;
            _isInit = false;
        }
        private async Task TimThongTinNguoi()
        {
            if (_finding || _isInit)
            {
                return;
            }

            _finding = true;

            if (!string.IsNullOrEmpty(sO_CMNDTextBox.Text))
            {
                NGUOI checkExist = await _modelTimKiem.NGUOI.FirstOrDefaultAsync(p => p.SO_CMND == sO_CMNDTextBox.Text);

                if (checkExist != null)
                {
                    NguoiXuatCanh = await _model.NGUOI.FirstOrDefaultAsync(p => p.ID == checkExist.ID);

                    nGUOIBindingSource.DataSource = NguoiXuatCanh;
                }
            }
            else if (!string.IsNullOrEmpty(hO_VA_TENTextBox.Text) && !mA_DIA_BAN_THONSearchLookUpEdit.EditValue.EditValueIsNull())
            {
                NGUOI checkExist = await _modelTimKiem.NGUOI.FirstOrDefaultAsync(p => p.HO_VA_TEN.ToLower() == hO_VA_TENTextBox.Text.ToLower() && p.MA_DIA_BAN_THON == mA_DIA_BAN_THONSearchLookUpEdit.EditValue.ToString());

                if (checkExist != null && _khongCheckNhungNguoiNay.FirstOrDefault(p => p.ID == checkExist.ID) == null)
                {
                    switch (ThongBao.XacNhan($"Đã có 01 người có thông tin:\r\nHọ tên: {checkExist.HO_VA_TEN}, sinh ngày {checkExist.NGAY_SINH}/{checkExist.THANG_SNH}/{checkExist.NAM_SINH}\r\nTrú tại: {checkExist?.MA_DIA_BAN_THON1?.ND}\r\n<b>Đồng chí có muốn điền thông tin ngay?</b>"))
                    {
                    case DialogResult.Yes:
                        NguoiXuatCanh = await _model.NGUOI.FirstOrDefaultAsync(p => p.ID == checkExist.ID);

                        nGUOIBindingSource.DataSource = NguoiXuatCanh;
                        break;

                    case DialogResult.No:
                        _khongCheckNhungNguoiNay.Add(checkExist);
                        break;

                    case DialogResult.Cancel:
                        break;
                    }
                }
            }

            _finding = false;
        }