public ActionResult CreateTermAssessments()
        {
            var sessionID = db.AspNetSessions.Max(x => x.Id);
            ViewBag.TermID = new SelectList(db.AspNetTerms.Where(x => x.SessionID == sessionID), "Id", "TermName");

            var terms = Request.Form["TermID"];

            var Student_Subject = db.AspNetStudent_Subject.ToList();

            var Check_term = db.AspNetStudent_Term_Assessment.ToList();
            bool term_flag = true;

            foreach (var item in Check_term)
            {
                if (item.TermID == Convert.ToInt32(terms))
                    term_flag = false;
            }

            if (term_flag)
                foreach (var item in Student_Subject)
                {
                    AspNetStudent_Term_Assessment STA = new AspNetStudent_Term_Assessment();
                    //db.AspNetStudent_Term_Assessment
                    STA.StudentID = item.StudentID;
                    STA.TermID = Convert.ToInt32(terms);
                    STA.SubjectID = item.SubjectID;
                    STA.Status = "Started";


                    db.AspNetStudent_Term_Assessment.Add(STA);
                    db.SaveChanges();


                    var STAID = db.AspNetStudent_Term_Assessment.Max(x => x.Id);


                    var subjectquestions = db.AspNetAssessment_Question.Where(x => x.SubjectID == STA.SubjectID).ToList();
                    foreach (var subject_question in subjectquestions)
                    {
                        AspNetStudent_Term_Assessments_Answers staa = new AspNetStudent_Term_Assessments_Answers();
                        staa.STAID = STAID;
                        staa.Question = subject_question.Question;
                        staa.Catageory = subject_question.AspNetAssessment_Questions_Category.CategoryName;
                        staa.Answer = "";

                        db.AspNetStudent_Term_Assessments_Answers.Add(staa);

                    }

                    db.SaveChanges();
                }

            if (term_flag)
                ViewBag.term = "true";
            else
                ViewBag.term = "false";


            return View();
        }
        public JsonResult Approve_Evaluation(assessmentQuestions AssessmentQuestions)
        {
            int CurrentTerm = db.AspNetTerms.Select(x => x.Id).Max();
            var STAIDs = db.AspNetStudent_Term_Assessment.Where(x => x.SubjectID == AssessmentQuestions.SubjectID && x.TermID == CurrentTerm).Select(x => x).ToList();

            foreach (var item in STAIDs)
            {
                item.Status = "Not Submitted";

                if (AssessmentQuestions.QuestionList != null)
                    foreach (var questions in AssessmentQuestions.QuestionList)
                    {
                        var question = new AspNetStudent_Term_Assessments_Answers();
                        question.STAID = item.Id;
                        question.Question = questions;
                        question.Catageory = "General Category";
                        db.AspNetStudent_Term_Assessments_Answers.Add(question);
                    }
            }
            db.SaveChanges();

            return Json("Saved Successfully", JsonRequestBehavior.AllowGet);
        }
        public ActionResult subqueEvaluations(string StudentId, string SubId, string TermId)
        {
            int TId = int.Parse(TermId);
            int SID = int.Parse(SubId);
            var ClassId = db.AspNetStudents.Where(p => p.StudentID == StudentId).FirstOrDefault().ClassID;
            var secnumber = db.AspNetTerms.Where(p => p.Id == TId).FirstOrDefault().TermNo;
            var category = (from sub in db.AspNetSubjects
                            join aq in db.AspNetAssessment_Question on sub.Id equals aq.SubjectID
                            join cat in db.AspNetAssessment_Questions_Category on aq.QuestionCategory equals cat.Id
                            where sub.SubjectName == "English Language Development" && sub.ClassID == ClassId
                            select new { cat.CategoryName }).Distinct().ToList();
           
            //var questions = db.GetStudentTermSubjectAssessment(StudentId, TId, SID).ToList();
            var sessionid = db.AspNetSessions.Where(p => p.Status == "Active").FirstOrDefault().Id;

            var sessionassesques = db.GetStudentSessionSubjectAssessment(StudentId, sessionid, SID).ToList();
            var cgjhk = sessionassesques.Count();

            if (cgjhk > 0)
            {
                var result1 = new { status = "success", Value = sessionassesques,categoryname=category, TId = secnumber, ClassId = ClassId };
                
                return Json(result1, JsonRequestBehavior.AllowGet);
            }
            else
            {
                var Aquestions = db.GetSubjctAssessmentQuestions(SID).ToList();

                foreach(var ques in Aquestions)
                {
                    AspNetStudent_Term_Assessment obj = new AspNetStudent_Term_Assessment();

                    obj.StudentID = StudentId;
                    obj.SubjectID = SID;
                    obj.SessionId = sessionid;
                    obj.TermID = TId;

                    db.AspNetStudent_Term_Assessment.Add(obj);
                    db.SaveChanges();

                    AspNetStudent_Term_Assessments_Answers obje = new AspNetStudent_Term_Assessments_Answers();

                    obje.STAID = obj.Id;
                    obje.Question = ques.Question;
                    obje.Catageory = ques.CategoryName;
                    obje.FirstTermGrade = "";
                    obje.SecondTermGrade = "";
                    obje.ThirdTermGrade = "";
                    //obje = ;
                    db.AspNetStudent_Term_Assessments_Answers.Add(obje);
                    db.SaveChanges();

                }

                var sessionassesrtques = db.GetStudentSessionSubjectAssessment(StudentId, sessionid, SID).ToList();
                var result1 = new { status = "success", Value = sessionassesrtques, categoryname = category, TId = secnumber, ClassId = ClassId };
                 
                return Json(result1, JsonRequestBehavior.AllowGet);
            }

            
        }