//Get student performance on each quiz of the module public DataSet getAllQuizbyStudent(int studentId, int moduleId) { DataSet ds = new DataSet(); DataTable dt = new DataTable(); dt.Columns.Add("quiz"); dt.Columns.Add("marks"); using (myProjectEntities context = new myProjectEntities()) { var allQuiz = context.tblQuizDetails.Where(q => q.FK_ModuleId == moduleId).Select(q => q.PK_Quiz_id).ToList(); for (int i = 0; i < allQuiz.Count; i++) { int s = Convert.ToInt32(allQuiz[i].ToString()); tblQuizDetail q = context.tblQuizDetails.Where(t => t.PK_Quiz_id == s).FirstOrDefault(); //Quiz Detail string title = q.quiz_title; float weightage = (float)q.quiz_weightage; var sd = context.tblQuizResults.Where(w => w.FK_QuizId == s && w.FK_studentId == studentId).Select(w => w.marks).ToList(); //All marks scored by student for that quiz float mark = float.Parse(sd.Sum().ToString()); // Total marks float p = (mark / weightage) * 100; //Percantage scored by the student dt.Rows.Add(title, p.ToString()); } ds.Tables.Add(dt); } return(ds); }
//Delete Question with all Options public bool DeleteQuestion(int quesData) { bool result = false; using (myProjectEntities context = new myProjectEntities()) { tblQuizQuestion quesDetail = context.tblQuizQuestions.Where(w => w.PK_Question_id == quesData).FirstOrDefault(); float m1 = (float)quesDetail.marks; tblQuizDetail quizDetail = context.tblQuizDetails.Where(a => a.PK_Quiz_id == quesDetail.FK_Quiz_id).FirstOrDefault(); float m2 = (float)quizDetail.quiz_weightage - m1; quizDetail.quiz_weightage = m2; context.Entry(quizDetail).State = EntityState.Modified; context.SaveChanges(); int q = context.spDeleteQuestionWithOption(quesData); if (q != 0) { result = true; //set return to true } } return(result); }
//Update existing Questions public bool UpdateQuestion(questionModel quesData) { bool result = false; using (myProjectEntities context = new myProjectEntities()) //update weightage { tblQuizQuestion quesDetail = context.tblQuizQuestions.Where(w => w.PK_Question_id == quesData.PK_Question_id).FirstOrDefault(); float m1 = (float)quesDetail.marks; tblQuizDetail quizDetail = context.tblQuizDetails.Where(a => a.PK_Quiz_id == quesData.FK_Quiz_id).FirstOrDefault(); float m2 = (float)quizDetail.quiz_weightage - m1; quizDetail.quiz_weightage = m2 + (float)quesData.marks; context.Entry(quizDetail).State = EntityState.Modified; context.SaveChanges(); } using (myProjectEntities context = new myProjectEntities()) { Mapper.CreateMap <questionModel, tblQuizQuestion>(); tblQuizQuestion newQues = Mapper.Map <questionModel, tblQuizQuestion>(quesData); context.Entry(newQues).State = EntityState.Modified; context.SaveChanges(); } if (quesData.question_type == "Optional" || quesData.question_type == "Multiple Choice") { using (myProjectEntities context = new myProjectEntities()) { List <tblQuizOption> newOpt = context.tblQuizOptions.Where(s => s.FK_Question_id == quesData.PK_Question_id).ToList(); foreach (optionModel item in quesData.optionModel) { foreach (tblQuizOption item1 in newOpt) { if (item.PK_Option_id == item1.PK_Option_id) { item1.isAnswer = item.isAnswer; } } } context.SaveChanges(); } } result = true; return(result); //This is to update just the Question i.e. without option model //Mapper.CreateMap<questionModel, tblQuizQuestion>(); //tblQuizQuestion s = Mapper.Map<questionModel, tblQuizQuestion>(quesData); //context.Entry(s).State = EntityState.Modified; //int q = context.SaveChanges(); //if (q == 1) // result = true; //return result; }
//Get Individual Quiz detail public quizModel GetQuizById(int quizId) { using (myProjectEntities context = new myProjectEntities()) { tblQuizDetail pro = context.tblQuizDetails.Where(q => q.PK_Quiz_id == quizId).FirstOrDefault(); Mapper.CreateMap <tblQuizDetail, quizModel>(); quizModel result = Mapper.Map <tblQuizDetail, quizModel>(pro); return(result); } }
//Update existing Quiz + Change the status to delete the quiz public bool UpdateQuiz(quizModel quizData) { bool result = false; using (myProjectEntities context = new myProjectEntities()) { Mapper.CreateMap <quizModel, tblQuizDetail>(); tblQuizDetail s = Mapper.Map <quizModel, tblQuizDetail>(quizData); context.Entry(s).State = EntityState.Modified; int q = context.SaveChanges(); if (q == 1) { result = true; } return(result); } }
//Performance of the student on all the quiz public DataSet getAllQuizByStudentId(int studentId) { DataSet ds = new DataSet(); DataTable dt = new DataTable(); dt.Columns.Add("qId"); dt.Columns.Add("qTitle"); dt.Columns.Add("qMarks"); using (myProjectEntities context = new myProjectEntities()) { //List of Quiz var quizList = context.tblQuizResults.Where(q => q.FK_studentId == studentId).Select(q => q.FK_QuizId).Distinct().ToList(); foreach (var quiz in quizList) { int quizId = (int)quiz; //This is quizId //To get the quiz detail tblQuizDetail quizDetail = context.tblQuizDetails.Where(q => q.PK_Quiz_id == quizId).FirstOrDefault(); //Sum all the marks for that particular quiz var marks = from p in context.tblQuizResults where p.FK_QuizId == quizId && p.FK_studentId == studentId group p.marks by p.FK_QuizId into g select new { qID = g.Key, total = g.Sum(i => i.Value) }; //To get the total marks float mark = 0; foreach (var i in marks) { mark = (float)i.total; } float weightage = (float)quizDetail.quiz_weightage; //weightage of the quiz float r3 = mark / weightage * 100; // percentage string r2 = quizDetail.quiz_title; // title dt.Rows.Add(quizId, r2, r3); } ds.Tables.Add(dt); return(ds); } }
//Create Quiz public int CreateQuiz(quizModel quizData) { int result = 0; using (myProjectEntities context = new myProjectEntities()) { quizData.quiz_update = System.DateTime.Now; // Last Update or Created Date Time quizData.quiz_status = 1; // Live coming Quiz Mapper.CreateMap <quizModel, tblQuizDetail>(); tblQuizDetail newQuiz = Mapper.Map <quizModel, tblQuizDetail>(quizData); context.tblQuizDetails.Add(newQuiz); //Execute the add function int q = context.SaveChanges(); if (q == 1) { result = newQuiz.PK_Quiz_id; //set return to true } } return(result); }
//Updated public int Question_Create(questionModel quesData) { int result = 0; using (myProjectEntities context = new myProjectEntities()) { Mapper.CreateMap <questionModel, tblQuizQuestion>(); tblQuizQuestion newQues = Mapper.Map <questionModel, tblQuizQuestion>(quesData); if (quesData.question_type == "Optional" || quesData.question_type == "Multiple Choice")//Check is not options { List <tblQuizOption> newOpt = new List <tblQuizOption>(); Mapper.CreateMap <optionModel, tblQuizOption>(); foreach (optionModel opt in quesData.optionModel) { tblQuizOption o = Mapper.Map <optionModel, tblQuizOption>(opt); newOpt.Add(o); } newQues.tblQuizOptions = newOpt.ToList(); } context.tblQuizQuestions.Add(newQues); //Execute the add function int q = context.SaveChanges(); if (q > 0) { result = newQues.PK_Question_id; //set return to true } tblQuizDetail quizDetail = context.tblQuizDetails.Where(a => a.PK_Quiz_id == newQues.FK_Quiz_id).FirstOrDefault(); quizDetail.quiz_weightage = quizDetail.quiz_weightage + (float)newQues.marks; context.Entry(quizDetail).State = EntityState.Modified; context.SaveChanges(); } return(result); }