public void PopulateAdditonalInfo()
        {
            try
            {
                DoBlank();
                gridMedicaInfo.DataSource = null;
                SelectedModel             = (new ServiceEmployee()).GetEmployeeAdditonalAndMedicalInfo(this.SelectedEmployeeID);
                if (SelectedModel != null)
                {
                    txtNationality.Text    = SelectedModel.Nationality;
                    txtUniqueIDNo.Text     = SelectedModel.AADHAR_NO;
                    txtLicenceNo.Text      = SelectedModel.LicenceNo;
                    txtPassportNo.Text     = SelectedModel.PassportNo;
                    txtVisaNo.Text         = SelectedModel.VisaNo;
                    txtWorkPermit.Text     = SelectedModel.WorkPermitNo;
                    txtWorkPermitType.Text = SelectedModel.WorkPermitType;

                    //FOR LICENCE INFO
                    if (SelectedModel.LicenceIssueDate == null)
                    {
                        dtLicenceIssueDate.Checked = false;
                    }
                    else
                    {
                        dtLicenceIssueDate.Value = (DateTime)SelectedModel.LicenceIssueDate;
                    }

                    if (SelectedModel.LicenceExpiryDate == null)
                    {
                        dtLicenceExpiryDate.Checked = false;
                    }
                    else
                    {
                        dtLicenceExpiryDate.Value = (DateTime)SelectedModel.LicenceExpiryDate;
                    }

                    //FOR PASSPORT INFO
                    if (SelectedModel.PassportIssueDate == null)
                    {
                        dtPassportIssueDate.Checked = false;
                    }
                    else
                    {
                        dtPassportIssueDate.Value = (DateTime)SelectedModel.PassportIssueDate;
                    }

                    if (SelectedModel.PassportExpiryDate == null)
                    {
                        dtPassportExpiryDate.Checked = false;
                    }
                    else
                    {
                        dtPassportExpiryDate.Value = (DateTime)SelectedModel.PassportExpiryDate;
                    }

                    //FOR VISA INFO
                    if (SelectedModel.VisaIssueDate == null)
                    {
                        dtVisaIssueDate.Checked = false;
                    }
                    else
                    {
                        dtVisaIssueDate.Value = (DateTime)SelectedModel.VisaIssueDate;
                    }

                    if (SelectedModel.VisaExpiryDate == null)
                    {
                        dtVisaExpiryDate.Checked = false;
                    }
                    else
                    {
                        dtVisaExpiryDate.Value = (DateTime)SelectedModel.VisaExpiryDate;
                    }

                    //FOR WORK PERMIT INFO
                    if (SelectedModel.WorkPermitIssueDate == null)
                    {
                        dtWorkPermitIssueDate.Checked = false;
                    }
                    else
                    {
                        dtWorkPermitIssueDate.Value = (DateTime)SelectedModel.WorkPermitIssueDate;
                    }
                    if (SelectedModel.WorkPermitExpiryDate == null)
                    {
                        dtWorkPermitExpiryDate.Checked = false;
                    }
                    else
                    {
                        dtWorkPermitExpiryDate.Value = (DateTime)SelectedModel.WorkPermitExpiryDate;
                    }

                    PopulateMedicalInfoGrid();
                }
            }
            catch (Exception ex)
            {
                string errMessage = ex.Message;
                if (ex.InnerException != null)
                {
                    errMessage += string.Format("\n{0}", ex.InnerException.Message);
                }
                MessageBox.Show(errMessage, "ControlEmployeeAdditionalInfo::PopulateAdditonalInfo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btnUpdateInfo_Click(object sender, EventArgs e)
        {
            errorProvider1.Clear();
            try
            {
                if (!this.ValidateChildren())
                {
                    return;
                }

                SelectedModel             = (new ServiceEmployee()).GetEmployeeAdditonalAndMedicalInfo(this.SelectedEmployeeID);
                SelectedModel.Nationality = txtNationality.Text;
                SelectedModel.AADHAR_NO   = txtUniqueIDNo.Text;
                SelectedModel.LicenceNo   = txtLicenceNo.Text;

                if (dtLicenceIssueDate.Checked)
                {
                    SelectedModel.LicenceIssueDate = dtLicenceIssueDate.Value;
                }
                else
                {
                    SelectedModel.LicenceIssueDate = null;
                }

                if (dtLicenceExpiryDate.Checked)
                {
                    SelectedModel.LicenceExpiryDate = dtLicenceExpiryDate.Value;
                }
                else
                {
                    SelectedModel.LicenceExpiryDate = null;
                }

                if (dtPassportIssueDate.Checked)
                {
                    SelectedModel.PassportIssueDate = dtPassportIssueDate.Value;
                }
                else
                {
                    SelectedModel.PassportIssueDate = null;
                }


                SelectedModel.PassportNo = txtPassportNo.Text;

                if (dtPassportExpiryDate.Checked)
                {
                    SelectedModel.PassportExpiryDate = dtPassportExpiryDate.Value;
                }
                else
                {
                    SelectedModel.PassportExpiryDate = null;
                }


                SelectedModel.VisaTypeInfo = ((SelectListItem)cboVisaType.SelectedItem);
                SelectedModel.VisaNo       = txtVisaNo.Text;

                if (dtVisaIssueDate.Checked)
                {
                    SelectedModel.VisaIssueDate = dtVisaIssueDate.Value;
                }
                else
                {
                    SelectedModel.VisaIssueDate = null;
                }

                if (dtVisaExpiryDate.Checked)
                {
                    SelectedModel.VisaExpiryDate = dtVisaExpiryDate.Value;
                }
                else
                {
                    SelectedModel.VisaExpiryDate = null;
                }

                SelectedModel.WorkPermitType = txtWorkPermitType.Text;
                SelectedModel.WorkPermitNo   = txtWorkPermit.Text;

                if (dtWorkPermitIssueDate.Checked)
                {
                    SelectedModel.WorkPermitIssueDate = dtWorkPermitIssueDate.Value;
                }
                else
                {
                    SelectedModel.WorkPermitIssueDate = null;
                }

                if (dtWorkPermitExpiryDate.Checked)
                {
                    SelectedModel.WorkPermitExpiryDate = dtWorkPermitExpiryDate.Value;
                }
                else
                {
                    SelectedModel.WorkPermitExpiryDate = null;
                }


                //fill additional info properties with the vaue from UI controsl

                bool res = (new ServiceEmployee()).SetEmployeeAdditonalInfo(SelectedModel);
                if (res)
                {
                    string strMessage = string.Format("Additional Information of {0} Updated", SelectedModel.EmployeeFullName);
                    MessageBox.Show(strMessage, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                string errMessage = ex.Message;
                if (ex.InnerException != null)
                {
                    errMessage += string.Format("\n{0}", ex.InnerException.Message);
                }
                MessageBox.Show(errMessage, "ControlEmployeeAdditionalInfo::btnUpdateInfo_Click", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }