/// <summary>
 /// Insert Affirmative Details
 /// </summary>
 /// <param name="affirmativeDetailsEntity">Object for inserting data into database</param>
 /// <returns>True/false</returns>
 public bool SaveAffirmativeDetailsDAL(AffirmativeDetailsEntity affirmativeDetailsEntity)
 {
     int result;
     try
     {
         SqlParameter[] sqlparams ={
                                   new SqlParameter("@candidateId",affirmativeDetailsEntity.CandidateId),
                                   new SqlParameter("@physicallyChallenged",affirmativeDetailsEntity.PhysicallyChallenged),
                                   new SqlParameter("@description",affirmativeDetailsEntity.Description),
                                   new SqlParameter("@sports",affirmativeDetailsEntity.Sports),
                                   new SqlParameter("@sportsDescription",affirmativeDetailsEntity.SportsDescription),
                                   new SqlParameter("@usaPermit",affirmativeDetailsEntity.USAPermit),
                                   new SqlParameter("@otherPermits",affirmativeDetailsEntity.OtherPermits),
                                   new SqlParameter ("@hobbies",affirmativeDetailsEntity.Hobbies),
                                   new SqlParameter ("@extraActivity",affirmativeDetailsEntity.ExtraActivity)
                                   };
         result = SqlHelper.ExecuteNonQuery(connection, CommandType.StoredProcedure, Constants.sp_JS_InsertOtherDetails, sqlparams);
         if (result > 0)
         {
             return true;
         }
         return false;
     }
     catch (Exception)
     {
         throw;
     }
     finally
     {
         connection.Close();
     }
 }
        /// <summary>
        /// Handles the Click event of the btnSave control.
        /// </summary>
        /// <param name="sender">The source of the event</param>
        /// <param name="e"></param>
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            try
            {
                // Check if isEdit is true for update
                if (isEdit)
                {
                    List<LanguageEntity> languageDetailsList = new List<LanguageEntity>();
                    AffirmativeDetailsEntity affirmativeDetailsEntity = new AffirmativeDetailsEntity();
                    AffirmativeDetailsJSBAL affirmativeDetailsBAL = new AffirmativeDetailsJSBAL();
                    //set the value of AffirmativeDetailsJSEntity
                    affirmativeDetailsEntity.CandidateId = candidateId;

                    // Set the value of LanguageEntity for first language
                    LanguageEntity firstlanguageEntity = new LanguageEntity();
                    firstlanguageEntity.CandidateId = candidateId;
                    firstlanguageEntity.LanguageId = Convert.ToInt32(ddlLanguageFirst.SelectedValue);
                    firstlanguageEntity.ProficiencyLevel = ddlProficiencyFirst.SelectedItem.Text;
                    firstlanguageEntity.Read = chkReadFirst.Checked;
                    firstlanguageEntity.Write = chkWriteFirst.Checked;
                    firstlanguageEntity.Speak = chkSpeakFirst.Checked;

                    // Add language details into collection.
                    languageDetailsList.Add(firstlanguageEntity);

                    //set the value of LanguageEntity for second language
                    LanguageEntity secondlanguageEntity = new LanguageEntity();
                    secondlanguageEntity.CandidateId = candidateId;
                    secondlanguageEntity.LanguageId = Convert.ToInt32(ddlLanguageSecond.SelectedValue);
                    secondlanguageEntity.ProficiencyLevel = ddlProficiencySecond.SelectedItem.Text;
                    secondlanguageEntity.Read = chkReadSecond.Checked;
                    secondlanguageEntity.Write = chkWriteSecond.Checked;
                    secondlanguageEntity.Speak = chkSpeakSecond.Checked;

                    // Add language details into collection.
                    languageDetailsList.Add(secondlanguageEntity);

                    //set the value of LanguageEntity for third language
                    LanguageEntity thirdlanguageEntity = new LanguageEntity();
                    thirdlanguageEntity.CandidateId = candidateId;
                    thirdlanguageEntity.LanguageId = Convert.ToInt32(ddlLanguageThird.SelectedValue);
                    thirdlanguageEntity.ProficiencyLevel = ddlProficiencyThird.SelectedItem.Text;
                    thirdlanguageEntity.Read = chkReadThird.Checked;
                    thirdlanguageEntity.Write = chkWriteThird.Checked;
                    thirdlanguageEntity.Speak = chkSpeakThird.Checked;

                    // Add language details into collection.
                    languageDetailsList.Add(thirdlanguageEntity);

                    affirmativeDetailsEntity.PhysicallyChallenged = string.Empty;
                    affirmativeDetailsEntity.PhysicallyChallenged = rbtPhysicallyChallenged.SelectedItem.Text;
                    // Check if PhysicallyChallenged is visible
                    if (pnlPhysicallyChallenged.Visible = true)
                    {
                        affirmativeDetailsEntity.PhysicallyChallenged = rbtPhysicallyChallenged.SelectedItem.Text;
                    }

                    affirmativeDetailsEntity.Description = txtDescription.Text.Trim();
                    affirmativeDetailsEntity.Sports = txtSports.Text.Trim();
                    affirmativeDetailsEntity.SportsDescription = txtSportsDescription.Text.Trim();
                    affirmativeDetailsEntity.Hobbies = txtHobbies.Text.Trim();
                    affirmativeDetailsEntity.ExtraActivity = txtExtraActivity.Text.Trim();
                    affirmativeDetailsEntity.USAPermit = string.Empty;
                    //if (rbtYesUSA.Checked)
                    //    affirmativeDetailsEntity.USAPermit = "Yes";
                    //else
                    //    affirmativeDetailsEntity.USAPermit = "No";
                    affirmativeDetailsEntity.USAPermit = rbtUSAPermit.SelectedItem.Text;
                    affirmativeDetailsEntity.OtherPermits = Convert.ToInt32(ddlOtherPermit.Text.Trim());

                    // Save language details
                    bool isLanguageSaved = affirmativeDetailsBAL.UpdateLanguageDetailsBAL(languageDetailsList, candidateId);
                    // Save affirmative Details.
                    bool isOtherDetailsSaved = affirmativeDetailsBAL.UpdateAffirmativeDetailsBAL(affirmativeDetailsEntity);
                    // Check if isLanguageDetails and isOtherDetails are equal
                    if (isLanguageSaved == isOtherDetailsSaved)
                    {
                        Response.Write("<script language='javascript'>alert('Affirmative Details Updated')</script>");
                    }
                    else
                    {
                        Response.Write("<script language='javascript'>alert('Sorry')</script>");
                    }
                }
                else
                {
                    List<LanguageEntity> languageDetailsList = new List<LanguageEntity>();
                    AffirmativeDetailsEntity affirmativeDetailsEntity = new AffirmativeDetailsEntity();
                    AffirmativeDetailsJSBAL affirmativeDetailsBAL = new AffirmativeDetailsJSBAL();
                    //set the value of AffirmativeDetailsJSEntity
                    affirmativeDetailsEntity.CandidateId = candidateId;

                    // Set the value of LanguageEntity for first language
                    LanguageEntity firstlanguageEntity = new LanguageEntity();
                    firstlanguageEntity.CandidateId = candidateId;
                    firstlanguageEntity.LanguageId = Convert.ToInt32(ddlLanguageFirst.SelectedValue);
                    firstlanguageEntity.ProficiencyLevel = ddlProficiencyFirst.SelectedItem.Text;
                    firstlanguageEntity.Read = chkReadFirst.Checked;
                    firstlanguageEntity.Write = chkWriteFirst.Checked;
                    firstlanguageEntity.Speak = chkSpeakFirst.Checked;

                    // Add language details into collection.
                    languageDetailsList.Add(firstlanguageEntity);

                    //set the value of LanguageEntity for second language
                    LanguageEntity secondlanguageEntity = new LanguageEntity();
                    secondlanguageEntity.CandidateId = candidateId;
                    secondlanguageEntity.LanguageId = Convert.ToInt32(ddlLanguageSecond.SelectedValue);
                    secondlanguageEntity.ProficiencyLevel = ddlProficiencySecond.SelectedItem.Text;
                    secondlanguageEntity.Read = chkReadSecond.Checked;
                    secondlanguageEntity.Write = chkWriteSecond.Checked;
                    secondlanguageEntity.Speak = chkSpeakSecond.Checked;

                    // Add language details into collection.
                    languageDetailsList.Add(secondlanguageEntity);

                    //set the value of LanguageEntity for third language
                    LanguageEntity thirdlanguageEntity = new LanguageEntity();
                    thirdlanguageEntity.CandidateId = candidateId;
                    thirdlanguageEntity.LanguageId = Convert.ToInt32(ddlLanguageThird.SelectedValue);
                    thirdlanguageEntity.ProficiencyLevel = ddlProficiencyThird.SelectedItem.Text;
                    thirdlanguageEntity.Read = chkReadThird.Checked;
                    thirdlanguageEntity.Write = chkWriteThird.Checked;
                    thirdlanguageEntity.Speak = chkSpeakThird.Checked;

                    // Add language details into collection.
                    languageDetailsList.Add(thirdlanguageEntity);

                    affirmativeDetailsEntity.PhysicallyChallenged = string.Empty;
                    affirmativeDetailsEntity.PhysicallyChallenged = rbtPhysicallyChallenged.SelectedItem.Text;
                    // Check if PhysicallyChallenged is visible
                    if (pnlPhysicallyChallenged.Visible = true)
                    {
                        affirmativeDetailsEntity.PhysicallyChallenged = rbtPhysicallyChallenged.SelectedItem.Text;
                    }

                    affirmativeDetailsEntity.Description = txtDescription.Text.Trim();
                    affirmativeDetailsEntity.Sports = txtSports.Text.Trim();
                    affirmativeDetailsEntity.SportsDescription = txtSportsDescription.Text.Trim();
                    affirmativeDetailsEntity.Hobbies = txtHobbies.Text.Trim();
                    affirmativeDetailsEntity.ExtraActivity = txtExtraActivity.Text.Trim();
                    affirmativeDetailsEntity.USAPermit = string.Empty;
                    //if (rbtYesUSA.Checked)
                    //    affirmativeDetailsEntity.USAPermit = "Yes";
                    //else
                    //    affirmativeDetailsEntity.USAPermit = "No";
                    affirmativeDetailsEntity.USAPermit = rbtUSAPermit.SelectedItem.Text;
                    affirmativeDetailsEntity.OtherPermits = Convert.ToInt32(ddlOtherPermit.Text.Trim());

                    // Save language details
                    bool isLanguageSaved = affirmativeDetailsBAL.SaveLanguageDetailsBAL(languageDetailsList);
                    // Save affermative Details.
                    bool isOtherDetailsSaved = affirmativeDetailsBAL.SaveAffirmaiveDetailsBAL(affirmativeDetailsEntity);

                    if (isLanguageSaved == isOtherDetailsSaved)
                    {
                        Response.Write("<script language='javascript'>alert('Affirmative Details Inserted')</script>");
                    }
                    else
                    {
                        Response.Write("<script language='javascript'>alert('Sorry')</script>");
                    }
                }
            }
            catch (Exception)
            {
                // throw;
            }
        }
        /// <summary>
        /// Bind affirmative details for edit
        /// </summary>
        /// <param name="candidateId">candidateId</param>
        private void BindAffirmativeDetails(string candidateId)
        {
            try
            {
                AffirmativeDetailsJSBAL affirmativeDetailsBAL = new AffirmativeDetailsJSBAL();
                AffirmativeDetailsEntity affirmativeDetailsEntity = new AffirmativeDetailsEntity();
                DataSet dsAffirmativeDetails = new DataSet();
                dsAffirmativeDetails = affirmativeDetailsBAL.viewAffirmativeDetailsBAL(candidateId);
                bool isSelected, languageWrite, languageSpeak, languageSecond, writeSecond, speakSecond, languageThird, writeThird, speakThird;
                string physicallyChallenged, USApermit;
                // Check dataset is not null
                if (dsAffirmativeDetails != null)
                {
                    // Check the count than zero
                    if (dsAffirmativeDetails.Tables.Count > 0)
                    {
                        // Check rows greater than zero
                        if (dsAffirmativeDetails.Tables[0].Rows.Count > 0)
                        {
                            ddlLanguageFirst.SelectedValue = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[0]["LanguageId"]);
                            ddlProficiencyFirst.SelectedValue = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[0]["ProficiencyLevel"]);
                            isSelected = Convert.ToBoolean(dsAffirmativeDetails.Tables[0].Rows[0]["LanguageRead"]);
                            // Check if isSelected is true
                            if (isSelected == true)
                            {
                                chkReadFirst.Checked = true;
                            }

                            languageWrite = Convert.ToBoolean(dsAffirmativeDetails.Tables[0].Rows[0]["LanguageWrite"]);
                            // Check if languageWrite is true
                            if (languageWrite == true)
                            {
                                chkWriteFirst.Checked = true;
                            }

                            languageSpeak = Convert.ToBoolean(dsAffirmativeDetails.Tables[0].Rows[0]["LanguageSpeak"]);
                            // Check if languageSpeck is true
                            if (languageSpeak == true)
                            {
                                chkSpeakFirst.Checked = true;
                            }

                            ddlLanguageSecond.SelectedValue = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[1]["LanguageId"]);
                            ddlProficiencySecond.SelectedValue = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[1]["ProficiencyLevel"]);
                            languageSecond = Convert.ToBoolean(dsAffirmativeDetails.Tables[0].Rows[1]["LanguageRead"]);
                            // Check if secondLanguage is true
                            if (languageSecond == true)
                            {
                                chkReadSecond.Checked = true;
                            }

                            writeSecond = Convert.ToBoolean(dsAffirmativeDetails.Tables[0].Rows[1]["LanguageWrite"]);
                            //  Check if WriteSecond is true
                            if (writeSecond == true)
                            {
                                chkWriteSecond.Checked = true;
                            }

                            speakSecond = Convert.ToBoolean(dsAffirmativeDetails.Tables[0].Rows[1]["LanguageSpeak"]);
                            // Check if speakSecond is true
                            if (speakSecond == true)
                            {
                                chkSpeakSecond.Checked = true;
                            }

                            ddlLanguageThird.SelectedValue = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[2]["LanguageId"]);
                            ddlProficiencyThird.SelectedValue = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[2]["ProficiencyLevel"]);
                            languageThird = Convert.ToBoolean(dsAffirmativeDetails.Tables[0].Rows[2]["LanguageRead"]);
                            //  Check if languageThird is true
                            if (languageThird == true)
                            {
                                chkReadThird.Checked = true;
                            }

                            writeThird = Convert.ToBoolean(dsAffirmativeDetails.Tables[0].Rows[2]["LanguageWrite"]);
                            // Check if writeThird is true
                            if (writeThird == true)
                            {
                                chkWriteThird.Checked = true;
                            }

                            speakThird = Convert.ToBoolean(dsAffirmativeDetails.Tables[0].Rows[2]["LanguageSpeak"]);
                            // Check if speakThird is true
                            if (speakThird == true)
                            {
                                chkSpeakThird.Checked = true;
                            }

                            physicallyChallenged = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[0]["PhysicallyChallenged"]);
                            rbtPhysicallyChallenged.Items.FindByText(physicallyChallenged).Selected = true;
                            // Check if physicallychallenge is true
                            if (physicallyChallenged == "Yes")
                            {
                                pnlPhysicallyChallenged.Visible = true;
                            }
                            txtDescription.Text = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[0]["Description"]);
                            txtSports.Text = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[0]["Sports"]);
                            txtSportsDescription.Text = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[0]["SportsDescription"]);
                            txtHobbies.Text = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[0]["Hobbies"]);
                            txtExtraActivity.Text = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[0]["ExtraActivity"]);
                            USApermit = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[0]["USApermit"]);
                            rbtUSAPermit.Items.FindByValue(USApermit).Selected = true;
                            //txtOtherPermit.Text = Convert.ToString(dsAffirmativeDetails.Tables[0].Rows[0]["OtherPermits"]);
                        }
                    }
                }
            }
            catch (Exception)
            {
                // throw;
            }
        }