public ActionResult Edit(createOption option)
        {
            OptionDetail Op   = new OptionDetail();
            QuesDetail   ques = new QuesDetail();

            using (var ctx = new mocktestEntities1())
            {
                ctx.Configuration.LazyLoadingEnabled = false;
                Op   = ctx.OptionDetails.Where(s => s.QuesDetailId == option.Qid).FirstOrDefault <OptionDetail>();
                ques = ctx.QuesDetails.Where(a => a.QuesDetailId == option.Qid).FirstOrDefault <QuesDetail>();
            }
            ques.Question  = option.question.EditQuestion;
            ques.OpCorrect = option.question.optionCorrect;
            Op.OpOne       = option.optionOne;
            Op.OpTwo       = option.optionTwo;
            Op.OpThree     = option.optionThree;
            Op.OpFour      = option.optionFour;

            using (mocktestEntities1 selectStatement = new mocktestEntities1())
            {
                selectStatement.Entry(ques).State = System.Data.Entity.EntityState.Modified;
                selectStatement.Entry(Op).State   = System.Data.Entity.EntityState.Modified;
                selectStatement.SaveChanges();
            }
            return(Json(JsonRequestBehavior.AllowGet));
        }
        public JsonResult GetQuestions(Int32 subId, int?Page)
        {
            createOption      obj          = new createOption();
            List <QuesDetail> QuestionName = new List <QuesDetail>();
            //List<OptionDetail> OptionName = new List<OptionDetail>();
            Int32 subiD      = subId;
            int   pageSize   = 8;
            bool  Active     = true;
            int   pageNumber = (Page ?? 1);

            if (Session["RoleId"] != null)
            {
                using (mocktestEntities1 selectStatement = new mocktestEntities1())
                {
                    var quesdetail = selectStatement.QuesDetails.Join(selectStatement.OptionDetails, a => a.QuesDetailId, b => b.QuesDetailId, (a, b) => new { a, b })
                                     .Join(selectStatement.SubTopics, a => a.a.SubTopicId, b => b.SubTopicId, (a, b) => new { a, b }).Where(a => a.a.a.SubTopicId == subId & a.a.a.Active == Active).ToList();
                    obj.QuestionGrid = quesdetail.Select(c => new ShowQuiz
                    {
                        Qid          = c.a.a.QuesDetailId,
                        OpId         = c.a.b.OptionDetailsId,
                        QuestionName = c.a.a.Question.ToString(),
                        OpOne        = c.a.b.OpOne.ToString(),
                        OpTwo        = c.a.b.OpTwo.ToString(),
                        OpThree      = c.a.b.OpThree.ToString(),
                        OpFour       = c.a.b.OpFour.ToString(),
                        Correct      = c.a.a.OpCorrect.ToString()
                    }).ToList();
                    return(Json(obj.QuestionGrid, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                using (mocktestEntities1 selectStatement = new mocktestEntities1())
                {
                    if (TempData["SubId"] != null)
                    {
                        subId = Convert.ToInt32(TempData["SubId"]);
                    }
                    var quesdetail = selectStatement.QuesDetails.Join(selectStatement.OptionDetails, a => a.QuesDetailId, b => b.QuesDetailId, (a, b) => new { a, b })
                                     .Join(selectStatement.SubTopics, a => a.a.SubTopicId, b => b.SubTopicId, (a, b) => new { a, b }).Where(a => a.a.a.SubTopicId == subId & a.a.a.Active == Active).OrderBy(r => Guid.NewGuid()).Take(20).ToList();
                    obj.QuestionGrid = quesdetail.Select(c => new ShowQuiz
                    {
                        Qid          = c.a.a.QuesDetailId,
                        OpId         = c.a.b.OptionDetailsId,
                        QuestionName = c.a.a.Question.ToString(),
                        OpOne        = c.a.b.OpOne.ToString(),
                        OpTwo        = c.a.b.OpTwo.ToString(),
                        OpThree      = c.a.b.OpThree.ToString(),
                        OpFour       = c.a.b.OpFour.ToString(),
                        Correct      = c.a.a.OpCorrect.ToString()
                    }).ToList();
                    return(Json(obj.QuestionGrid, JsonRequestBehavior.AllowGet));
                }
            }
        }
        public ActionResult CreateQuiz(createOption ques)
        {
            mocktestEntities1 db = new mocktestEntities1();

            List <Topic>      topicName = new List <Topic>();
            List <SubTopic>   subName   = new List <SubTopic>();
            List <QuesDetail> questList = new List <QuesDetail>();
            bool Active = true;

            QuesDetail   newQuestion = new QuesDetail();
            OptionDetail newOption   = new OptionDetail();
            int          quesId      = 0;

            topicName = db.Topics.ToList();
            subName   = db.SubTopics.ToList();
            if (QuestionIsVaild(ques.question.Question, ques.SubId))
            {
                Int32 Id = ques.SubId;
                newQuestion.SubTopicId = Id;
                string Queval  = ques.question.Question.Replace("&lt", "<");
                string Queval1 = Queval.Replace("&gt", ">");
                newQuestion.Question  = Queval1;
                newQuestion.OpCorrect = ques.question.optionCorrect;
                newQuestion.Active    = Active;

                newOption.OpOne   = ques.optionOne;
                newOption.OpTwo   = ques.optionTwo;
                newOption.OpThree = ques.optionThree;
                newOption.OpFour  = ques.optionFour;
                db.QuesDetails.Add(newQuestion);

                db.SaveChanges();
                var QSTID = newQuestion.QuesDetailId;

                //using (mocktestEntities1 select = new mocktestEntities1())
                //{
                //    var quid = select.QuesDetails.Where(a => a.Question == Queval1 & a.Active == true).FirstOrDefault();
                //    quesId = quid.QuesDetailId;
                //}
                newOption.QuesDetailId = QSTID;
                newOption.Active       = Active;
                db.OptionDetails.Add(newOption);
                db.SaveChanges();

                //return View();
                return(Json(new { result = 0, message = "Success" }));
            }
            //TempData["alertMessage"] = "Question Already Exist!";
            //return View();
            return(Json(new { result = 1, message = "Question Already Exist!" }));
        }
        public JsonResult GettopicList()
        {
            if (Session["EmailId"] == null)
            {
                return(Json(null, JsonRequestBehavior.AllowGet));
            }
            createOption        obj       = new createOption();
            IEnumerable <Topic> TopicName = new List <Topic>();

            TopicName         = getTopic();
            obj.topicDropdown = TopicName.Select(b => new SelectListItem
            {
                Value = b.TopicId.ToString(),
                Text  = b.Name
            }).ToList();
            return(Json(obj.topicDropdown, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Edit(int QId)
        {
            createOption objcreateOption = new createOption();


            using (mocktestEntities1 db = new mocktestEntities1())
            {
                var option = db.OptionDetails.FirstOrDefault(a => a.QuesDetailId == QId);
                if (option != null)
                {
                    objcreateOption.question.EditQuestion  = option.QuesDetail.Question;
                    objcreateOption.question.optionCorrect = option.QuesDetail.OpCorrect;
                    objcreateOption.optionOne   = option.OpOne;
                    objcreateOption.optionTwo   = option.OpTwo;
                    objcreateOption.optionThree = option.OpThree;
                    objcreateOption.optionFour  = option.OpFour;
                    objcreateOption.Qid         = QId;
                }
            }
            return(Json(objcreateOption, JsonRequestBehavior.AllowGet));
        }
        public ActionResult GetsubList(int TopicId)
        {
            if (Session["EmailId"] == null)
            {
                return(Json(null, JsonRequestBehavior.AllowGet));
            }
            JavaScriptSerializer serializer = new JavaScriptSerializer();
            createOption         obj        = new createOption();
            List <SubTopic>      SubName    = new List <SubTopic>();

            List <string> subList = new List <string>();
            int           topiciD = Convert.ToInt32(TopicId);

            if (Session["RoleId"] != null)
            {
                using (mocktestEntities1 selectStatement = new mocktestEntities1())
                {
                    SubName     = (selectStatement.SubTopics.Where(x => x.TopicId == topiciD & x.Active == true)).ToList();
                    obj.SubList = SubName.Select(a => new SelectListItem
                    {
                        Value = a.SubTopicId.ToString(),
                        Text  = a.Name
                    }).ToList();
                    return(Json(obj.SubList, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                using (mocktestEntities1 mkt = new mocktestEntities1())
                {
                    SubName     = (from t in mkt.Topics join s in mkt.SubTopics on t.TopicId equals s.TopicId join q in mkt.QuesDetails on s.SubTopicId equals q.SubTopicId where (from r in mkt.QuesDetails where r.SubTopicId == q.SubTopicId select r).Count() > 19 & t.TopicId == topiciD & s.Active == true select s).Distinct().ToList();
                    obj.SubList = SubName.Select(a => new SelectListItem
                    {
                        Value = a.SubTopicId.ToString(),
                        Text  = a.Name
                    }).ToList();
                    return(Json(obj.SubList, JsonRequestBehavior.AllowGet));
                }
            }
        }