public void QuestionGridDataLoad(QuizBookDbEntities1 _db, HttpContext context, string iSearch, string iSortCol2, string iSortDir, string iDisplayStart2, string iDisplayLength2, string isEcho, string qtS)
        {
            var iDisplayLength = int.Parse(iDisplayLength2);
            var iDisplayStart  = int.Parse(iDisplayStart2);
            var iSortCol       = int.Parse(iSortCol2);

            var quests = new List <QuestionModel>();

            if (qtS == "null")
            {
                quests = _db.T_Question.OrderByDescending(x => x.DateAdded).Select(a => new QuestionModel
                {
                    ID           = a.Id,
                    Detail       = string.IsNullOrEmpty(a.Details) ? "Empty" : "<div class='box'>" + a.Details.Trim() + "</div>",
                    Type         = ErecruitHelper.getTypeName(_db, a.TypeId),
                    OptionType   = ErecruitHelper.getOptionTypeName(_db, a.OptionType),
                    OptionsCount = ErecruitHelper.getOptionNumLink(_db, a.Id, a.Id),
                    IsActive     = a.IsActive.Value ? "Yes" : "No",
                    Edit         = "<a href='QuestionsList.aspx?z=" + a.Id + "' >Edit</a>",
                    D            = a.IsActive.Value ? "<a href='#' >Deactivate</a>" : "<a href='#' >Activate</a>"
                }).ToList();
            }
            else
            {
                quests = _db.T_Question.Where(s => s.TypeId == long.Parse(qtS)).OrderByDescending(x => x.DateAdded).Select(a => new QuestionModel
                {
                    ID           = a.Id,
                    Detail       = string.IsNullOrEmpty(a.Details) ? "Empty" : "<div class='box'>" + a.Details.Trim() + "</div>",
                    Type         = ErecruitHelper.getTypeName(_db, a.TypeId),
                    OptionType   = ErecruitHelper.getOptionTypeName(_db, a.OptionType),
                    OptionsCount = ErecruitHelper.getOptionNumLink(_db, a.Id, a.Id),
                    IsActive     = a.IsActive.Value ? "Yes" : "No",
                    Edit         = "<a href='QuestionsList.aspx?z=" + a.Id + "' >Edit</a>",
                    D            = a.IsActive.Value ? "<a href='#' >Deactivate</a>" : "<a href='#' >Activate</a>"
                }).Distinct().ToList();
            }
            //Searching
            IEnumerable <QuestionModel> f;

            if (!string.IsNullOrEmpty(iSearch))
            {
                f = quests
                    .Where(c => c.ID.ToString().ToLower().Contains(iSearch.ToLower())
                           ||
                           c.Detail.ToLower().Contains(iSearch.ToLower())
                           ||
                           c.Type.ToLower().Contains(iSearch.ToLower())
                           ||
                           c.OptionType.ToLower().Contains(iSearch.ToLower())
                           ||
                           c.OptionsCount.ToLower().Contains(iSearch.ToLower())
                           ||
                           c.IsActive.ToLower().Contains(iSearch.ToLower())
                           ||
                           c.Edit.ToLower().Contains(iSearch.ToLower())
                           ||
                           c.D.ToLower().Contains(iSearch.ToLower())


                           );
            }
            else
            {
                f = quests;
            }
            // Sorting
            var its = f;

            var sortCIndex = Convert.ToInt32(iSortCol);
            // Func<BDCCustomerGridModel, string> orderingFunction = (c => c.id.ToString());

            Func <QuestionModel, string> orderingFunct = (c => sortCIndex == 0 ? c.ID.ToString() :
                                                          sortCIndex == 1 ? c.Detail :
                                                          sortCIndex == 2 ? c.Type :
                                                          sortCIndex == 3 ? c.OptionType :
                                                          sortCIndex == 4 ? c.OptionsCount :
                                                          sortCIndex == 5 ? c.IsActive :
                                                          sortCIndex == 6 ? c.Edit :
                                                          sortCIndex == 7 ? c.D : ""
                                                          );

            //? sortColumnIndex == 2 ? c.Title :c.StartDate
            var sortDirect = iSortDir;

            // asc or desc
            f = sortDirect == "asc" ? f.OrderBy(orderingFunct) : f.OrderByDescending(orderingFunct);


            //Paging
            var displ = f
                        .Skip(iDisplayStart)
                        .Take(iDisplayLength);

            //Table Construction
            var thelst = from s in displ
                         select new[] { s.ID.ToString(), s.Detail, s.Type, s.OptionType, s.IsActive, s.OptionsCount, s.Edit, s.D };


            var r = new
            {
                sEcho                = isEcho,
                iTotalRecords        = quests.Count(),
                iTotalDisplayRecords = thelst.Count(),
                aaData               = thelst.ToList()
            };

            var srlizer = new JavaScriptSerializer();
            var jsonObj = srlizer.Serialize(r);

            context.Response.ContentType = "application/json";
            context.Response.Write(jsonObj);
        }