public void PopulateEmployeeBankInfo()
        {
            try
            {
                EmployeeBankInfoModel model = (new ServiceEmployee()).GetEmployeeBankInfo(this.SelectedEmployeeID);
                if (model != null)
                {
                    cboBank.SelectedItem = ((List <SelectListItem>)cboBank.DataSource).Where(x => x.ID == model.BankInfo.ID).FirstOrDefault();
                    PopulateBranchDropdown();// as branches dropdown need to be populated for the changed BankID
                    cboBankBranch.SelectedItem = ((List <SelectListItem>)cboBankBranch.DataSource).Where(x => x.ID == model.BankBranchInfo.ID).FirstOrDefault();
                    // Rest all dropdowns are populated while load..so need not to populate them again
                    cboAccountType.SelectedItem         = ((List <SelectListItem>)cboAccountType.DataSource).Where(x => x.ID == model.BankAccountType.ID).FirstOrDefault();
                    cboModeOfSalaryPayment.SelectedItem = ((List <SelectListItem>)cboModeOfSalaryPayment.DataSource).Where(x => x.ID == model.PaymentModeType.ID).FirstOrDefault();
                    // rest all are simpel datatypes..you can do them...continue
                    txtAccountNo.Text    = model.AccountNo;
                    txtAtmCardNo.Text    = model.DebitCardNo;
                    txtCreditCardNo.Text = model.CreditCardNo;
                    txtPFNo.Text         = model.PFNumber;
                    txtESICNo.Text       = model.ESICNumber;
                    txtPANNo.Text        = model.PANNumber;
                    txtUANNo.Text        = model.UANNumber;
                    if (model.LastCheckUpDate == null)
                    {
                        dtLastMedicalCheckUpDate.Checked = true;
                    }
                    else
                    {
                        dtLastMedicalCheckUpDate.Value = (DateTime)model.LastCheckUpDate;
                    }
                    if (model.NextCheckUpDate == null)
                    {
                        dtNextMedicalCheckUpDate.Checked = true;
                    }
                    else
                    {
                        dtNextMedicalCheckUpDate.Value = (DateTime)model.NextCheckUpDate;
                    }

                    // you still have issues in managinig null values & setting dropdown values....
                    //focus on this....contime
                }
            }
            catch (Exception ex)
            {
                string errMessage = ex.Message;
                if (ex.InnerException != null)
                {
                    errMessage += string.Format("\n{0}", ex.InnerException.Message);
                }
                MessageBox.Show(errMessage, "ControlEmployeeBankInfo::PopulateEmployeeBankInfo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btnUpdateBankDetails_Click(object sender, EventArgs e)
        {
            try
            {
                if (!this.ValidateChildren())
                {
                    return;
                }

                EmployeeBankInfoModel model = (new ServiceEmployee()).GetEmployeeBankInfo(this.SelectedEmployeeID);
                if (model != null)
                {
                    model.BankInfo.ID        = ((SelectListItem)cboBank.SelectedItem).ID;
                    model.BankBranchInfo.ID  = ((SelectListItem)cboBankBranch.SelectedItem).ID;
                    model.BankAccountType.ID = ((SelectListItem)cboAccountType.SelectedItem).ID;
                    model.PaymentModeType.ID = ((SelectListItem)cboModeOfSalaryPayment.SelectedItem).ID;
                    model.AccountNo          = txtAccountNo.Text.Trim();
                    model.DebitCardNo        = txtAtmCardNo.Text.Trim();
                    model.CreditCardNo       = txtCreditCardNo.Text.Trim();
                    model.PFNumber           = txtPFNo.Text.Trim();
                    model.ESICNumber         = txtESICNo.Text.Trim();
                    model.PANNumber          = txtPANNo.Text.Trim();
                    model.UANNumber          = txtUANNo.Text.Trim();

                    if (dtLastMedicalCheckUpDate.Checked)
                    {
                        model.LastCheckUpDate = null;
                    }
                    else
                    {
                        model.LastCheckUpDate = dtLastMedicalCheckUpDate.Value;
                    }

                    if (dtNextMedicalCheckUpDate.Checked)
                    {
                        model.NextCheckUpDate = null;
                    }
                    else
                    {
                        model.NextCheckUpDate = dtNextMedicalCheckUpDate.Value;
                    }



                    bool result = (new ServiceEmployee()).SetEmployeeBankInfo(model);
                    if (result)
                    {
                        MessageBox.Show("Employee Bank Details Updated", "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, "ControlEmployeeBankInfo::btnUpdateBankDetails_Click", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }