protected void BindScoreGrid(long id, T_Batch bid)
        {
            //var b_id = _db.T_BatchSet.Where(s => s.CandidateId == id).Select(x => x.BatchId);
            //var candBatch = _db.T_Batch.FirstOrDefault(s => b_id.Contains(s.Id) && s.IsActive.Value);
            var candBatch  = bid;
            var b_question = _db.T_BatchQuestions.Where(s => s.BatchId == candBatch.Id).Select(s => s.QuestionId);

            var quests = _db.T_CandidateAnswers.Where(s => s.CandidateId == id && s.BatchId == candBatch.Id).Select(a => new TestScoreGridModel
            {
                QuestionNo       = a.QuestionId.Value,
                OptionType       = ErecruitHelper.getQOptionTypeName(a.QuestionId.Value),
                CandidateOptions = ErecruitHelper.GetCandidateOptions(id, candBatch.Id, a.QuestionId.Value),
                Url = a.Correct.Value == true ? "../Images/accept.png" : "../Images/delete.png",
                Alt = a.Correct.Value == true ? "Correct":"Wrong"
            }).Distinct().ToList();
            var answered   = quests.Select(s => s.QuestionNo);
            var unanswered = _db.T_Question.Where(s => b_question.Contains(s.Id) && !answered.Contains(s.Id)).Select(a => new TestScoreGridModel
            {
                QuestionNo       = a.Id,
                OptionType       = ErecruitHelper.getQOptionTypeName(a.Id),
                CandidateOptions = "Unanswered",
                Url = "../Images/help.png",
                Alt = "?"
            }).Distinct().ToList();

            int i = quests.Count();

            if (i > 0)
            {
                quests.InsertRange(quests.Count() - 1, unanswered);
            }
            else
            {
                quests.InsertRange(0, unanswered);
            }

            ScoreList.DataSource = quests;
            ScoreList.DataBind();
            ScoreListPanel.Visible = true;
        }