// Create Lectures
        public int createLecture(lectureModel lectureData, bool feed, DateTime endDate)
        {
            int result = 0;

            using (myProjectEntities context = new myProjectEntities())
            {
                lectureData.lecture_status = 1;

                Mapper.CreateMap <lectureModel, tblLecture>();
                tblLecture newLec = Mapper.Map <lectureModel, tblLecture>(lectureData);

                context.tblLectures.Add(newLec);
                int qq = context.SaveChanges();
                result = qq;

                if (feed)
                {
                    feedbackModel feedModel = new feedbackModel();
                    feedModel.FK_Lecture_id = newLec.PK_Lecture_id;
                    feedModel.end_date      = endDate;
                    qq = createFeedback(feedModel);
                }
                return(result);
            }
        }
Пример #2
0
        //Enter Feedback
        public bool createFeedbackAnswer(FeedbackAnswer feedModel)
        {
            bool  result = false;
            float fValue = 0;

            using (myProjectEntities context = new myProjectEntities())
            {
                Mapper.CreateMap <FeedbackAnswer, tblFeedbackResult>();

                tblFeedbackResult newFeed = Mapper.Map <FeedbackAnswer, tblFeedbackResult>(feedModel);

                context.tblFeedbackResults.Add(newFeed);

                context.SaveChanges();

                var   valueFeed = context.tblFeedbackResults.Where(q => q.FK_Feedback_id == feedModel.FK_Feedback_id).Select(q => q.feedback_answer).AsEnumerable();
                float d         = float.Parse(valueFeed.Aggregate((a, b) => a + b).ToString());
                int   count     = valueFeed.Count();
                fValue = d / count;

                tblFeedback f = context.tblFeedbacks.Where(q => q.PK_Feedback_id == feedModel.FK_Feedback_id).FirstOrDefault();
                f.feedback_value       = fValue;
                context.Entry(f).State = EntityState.Modified;
                context.SaveChanges();
            }


            return(result);
        }
Пример #3
0
        public string CreateProfessor(Professor_Profile prfsrProfile)
        {
            string   result;
            Service1 s       = new Service1();                      // use some student Registration code
            bool     exEmail = s.ExistingEmail(prfsrProfile.email); //check whether the email is existing or not

            if (exEmail)
            {
                using (myProjectEntities context = new myProjectEntities())
                {
                    string vCode = Guid.NewGuid().ToString(); // create verification code
                    prfsrProfile.verification_code = vCode;
                    prfsrProfile.profile_pic       = "~/Images/profile.png";
                    prfsrProfile.status            = 0;

                    Mapper.CreateMap <Professor_Profile, tblProfessor>();
                    tblProfessor newProf = Mapper.Map <Professor_Profile, tblProfessor>(prfsrProfile);

                    context.tblProfessors.Add(newProf);
                    int qq = context.SaveChanges();
                    result = qq.ToString();

                    bool sendMail = s.SendEmail(prfsrProfile.firstname + " " + prfsrProfile.middlename + " " + prfsrProfile.lastname, prfsrProfile.email, "Account Verification", prfsrProfile.verification_code);
                }
            }
            else
            {
                result = "Existing Email";
            }

            return(result);
        }
Пример #4
0
        //Create Questions for quiz. This is awesome
        public int CreateQuestion(questionModel quesData)
        {
            int result = 0;

            using (myProjectEntities context = new myProjectEntities())
            {
                Mapper.CreateMap <questionModel, tblQuizQuestion>();
                tblQuizQuestion newQues = Mapper.Map <questionModel, tblQuizQuestion>(quesData);

                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
                }
            }
            return(result);
        }
Пример #5
0
        //Get all feedback
        public DataSet getAllFeedbacks(int moduleId)
        {
            DataSet ds = new DataSet();

            DataTable dt = new DataTable();

            dt.Columns.Add("Lecture");
            dt.Columns.Add("Average");
            using (myProjectEntities context = new myProjectEntities())
            {
                var listFeedback = context.tblFeedbacks.Where(q => q.tblLecture.FK_Module_id == moduleId).Select(q => q.PK_Feedback_id).ToList();

                foreach (var feedId in listFeedback)

                {
                    var feedAnswer = context.tblFeedbackResults.Where(q => q.FK_Feedback_id == feedId).Select(q => q.feedback_answer).ToList();

                    var feedAnswer1 = context.tblFeedbackResults.Where(q => q.FK_Feedback_id == feedId).Select(q => q.tblFeedback.tblLecture.lecture_title).FirstOrDefault();

                    float m = 0;

                    m = float.Parse(feedAnswer.Sum().ToString());

                    float d = (float)feedAnswer.Count;

                    float average = m / d;

                    dt.Rows.Add(feedAnswer1, average.ToString());
                }

                ds.Tables.Add(dt);
            }

            return(ds);
        }
Пример #6
0
        public int[] Dashboard(int ProfId)
        {
            using (myProjectEntities context = new myProjectEntities())
            {
                int[] reply = new int[4];

                int studentCount = 0; int activeQuizCount = 0; int activeLectureCount = 0; int quiz = 0;
                List <tblProfessorModule> moduleList = context.tblProfessorModules.Where(q => q.FK_Professor_id == ProfId).ToList();
                foreach (tblProfessorModule mList in moduleList)
                {
                    int student = context.tblStudentModules.Where(q => q.FK_Module_id == mList.FK_Module_id).Count();
                    studentCount += student;
                    int mId = context.tblQuizDetails.Where(q => q.FK_ModuleId == mList.FK_Module_id && System.DateTime.Now <= q.quiz_end_date).Count();
                    activeQuizCount += mId;
                    int lId = context.tblFeedbacks.Where(q => q.tblLecture.FK_Module_id == mList.FK_Module_id).Count();
                    activeLectureCount += lId;
                    int qId = context.tblQuizDetails.Where(q => q.FK_ModuleId == mList.FK_Module_id && System.DateTime.Now == q.quiz_end_date).Count();
                    quiz += qId;
                }
                reply[0] = studentCount;
                reply[1] = activeQuizCount;
                reply[2] = activeLectureCount;
                reply[3] = quiz;

                return(reply);
            }
        }
Пример #7
0
        public DataSet getAllModuleByTerm(string term)
        {
            DataSet ds = new DataSet();

            using (myProjectEntities context = new myProjectEntities())
            {
                List <tblDepartmentModule> depModules = context.tblDepartmentModules.Where(w => w.term == term).ToList();
                foreach (tblDepartmentModule dep in depModules)
                {
                    List <tblQuizDetail> qDetail = context.tblQuizDetails.Where(q => q.FK_ModuleId == dep.PK_Module_id).ToList();
                    DataTable            dt      = new DataTable();
                    dt.Columns.Add("quiz");
                    dt.Columns.Add("marks");
                    foreach (tblQuizDetail item in qDetail)
                    {
                        tblQuizResult r = context.tblQuizResults.Where(q => q.FK_QuizId == item.PK_Quiz_id).FirstOrDefault();
                        if (r != null)
                        {
                            var totalMarks = context.tblQuizResults.Where(q => q.FK_QuizId == item.PK_Quiz_id).Select(q => q.marks).AsEnumerable();

                            float d   = float.Parse(totalMarks.Aggregate((a, b) => a + b).ToString());
                            float s   = (float)item.quiz_weightage;
                            float per = d / s * 100;
                            dt.Rows.Add(item.quiz_title, per);
                        }
                    }
                    if (dt.Rows.Count > 0)
                    {
                        ds.Tables.Add(dt);
                    }
                }
            }
            return(ds);
        }
Пример #8
0
        //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);
        }
Пример #9
0
        //Get all feedback lectures of by moduleid
        public IEnumerable <lectureModel> GetAllFeedbackByModule(int moduleId, int studentId)
        {
            using (myProjectEntities context = new myProjectEntities())
            {
                List <tblLecture>  allLectures = context.tblLectures.Where(q => q.FK_Module_id == moduleId && q.lecture_status == 1 && q.lecture_date <= System.DateTime.Now).ToList();
                List <tblFeedback> feedModel   = new List <tblFeedback>();
                List <tblLecture>  lectModel   = new List <tblLecture>();

                foreach (tblLecture item in allLectures)
                {
                    tblFeedback d = context.tblFeedbacks.Where(w => w.FK_Lecture_id == item.PK_Lecture_id && System.DateTime.Now <= w.end_date).FirstOrDefault();
                    ////////Look here
                    if (d != null)
                    {
                        var checkStudent = context.tblFeedbackResults.Where(r => r.FK_Student_id == studentId && r.FK_Feedback_id == d.PK_Feedback_id).FirstOrDefault();
                        if (checkStudent == null)
                        {
                            //feedModel.Add(d);
                            lectModel.Add(item);
                        }
                    }
                }

                Mapper.CreateMap <tblLecture, lectureModel>();
                IEnumerable <lectureModel> result = Mapper.Map <IEnumerable <tblLecture>, IEnumerable <lectureModel> >(lectModel);
                return(result);
            }
        }
Пример #10
0
        //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);
        }
Пример #11
0
        //To save complete quiz in one go
        public bool quizAnswer(List <QuizResultModel> quizRData)
        {
            bool      result = false;
            Stopwatch st     = new Stopwatch();

            using (myProjectEntities context = new myProjectEntities())
            {
                for (int i = 0; i < quizRData.Count; i++)
                {
                    Mapper.CreateMap <QuizResultModel, tblQuizResult>();

                    tblQuizResult newQuizR = Mapper.Map <QuizResultModel, tblQuizResult>(quizRData[i]);

                    context.tblQuizResults.Add(newQuizR);
                }
                int q = context.SaveChanges();


                //Mapper.CreateMap<QuizResultModel, tblQuizResult>();
                //List<tblQuizResult> newQuizR = Mapper.Map<List<QuizResultModel>, List<tblQuizResult>>(quizRData);
                //st.Restart();
                //context.tblQuizResults.AddRange(newQuizR);
                //st.Stop();
                //st.Restart();
                //context.SaveChanges();
                //st.Stop();
            }


            return(result);
        }
Пример #12
0
        //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;
        }
Пример #13
0
 public feedbackModel GetFeedbackByLectureId(int lectureId)
 {
     using (myProjectEntities context = new myProjectEntities())
     {
         tblFeedback feed = context.tblFeedbacks.Where(q => q.FK_Lecture_id == lectureId).FirstOrDefault();
         Mapper.CreateMap <tblFeedback, feedbackModel>();
         feedbackModel result = Mapper.Map <tblFeedback, feedbackModel>(feed);
         return(result);
     }
 }
Пример #14
0
 //Collect all the quiz of the professor
 public IEnumerable <quizModel> GetAllQuizByProf(int ProfId, int status)
 {
     using (myProjectEntities context = new myProjectEntities())
     {
         IEnumerable <tblQuizDetail> pro = context.tblQuizDetails.Where(q => q.FK_Professor_id == ProfId && q.quiz_status == status).AsEnumerable();
         Mapper.CreateMap <tblQuizDetail, quizModel>();
         IEnumerable <quizModel> result = Mapper.Map <IEnumerable <tblQuizDetail>, IEnumerable <quizModel> >(pro);
         return(result);
     }
 }
Пример #15
0
 //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);
     }
 }
Пример #16
0
 //Get all the options by question
 public IEnumerable <optionModel> GetAllOptionByQues(int quesId)
 {
     using (myProjectEntities context = new myProjectEntities())
     {
         IEnumerable <tblQuizOption> pro = context.tblQuizOptions.Where(q => q.FK_Question_id == quesId).AsEnumerable();
         Mapper.CreateMap <tblQuizOption, optionModel>();
         IEnumerable <optionModel> result = Mapper.Map <IEnumerable <tblQuizOption>, IEnumerable <optionModel> >(pro);
         return(result);
     }
 }
Пример #17
0
 public IEnumerable <quizModel> GetAllQuizByModule(int moduleId)
 {
     using (myProjectEntities context = new myProjectEntities())
     {
         IEnumerable <tblQuizDetail> pro = context.tblQuizDetails.Where(q => q.FK_ModuleId == moduleId && q.quiz_date <= System.DateTime.Now && q.quiz_end_date > System.DateTime.Now && q.quiz_status == 1).AsEnumerable();
         Mapper.CreateMap <tblQuizDetail, quizModel>();
         IEnumerable <quizModel> result = Mapper.Map <IEnumerable <tblQuizDetail>, IEnumerable <quizModel> >(pro);
         return(result);
     }
 }
Пример #18
0
 //Get individual options of the question
 public optionModel GetOptionById(int optId)
 {
     using (myProjectEntities context = new myProjectEntities())
     {
         tblQuizOption pro = context.tblQuizOptions.Where(q => q.PK_Option_id == optId).FirstOrDefault();
         Mapper.CreateMap <tblQuizOption, optionModel>();
         optionModel result = Mapper.Map <tblQuizOption, optionModel>(pro);
         return(result);
     }
 }
Пример #19
0
        //Get class status i.e. Fail, Pass, Merit , Distinction
        public string[] getStatusByQuestionId(int questionId)
        {
            using (myProjectEntities context = new myProjectEntities())
            {
                //List of student who attend the question
                var studentList = context.tblQuizResults.Where(q => q.FK_QuestionId == questionId).Select(q => q.FK_studentId).Distinct().ToList();

                //Question mark
                float questionMark = (float)context.tblQuizQuestions.Where(q => q.PK_Question_id == questionId).Select(q => q.marks).FirstOrDefault();

                //Title of the question
                string questionTitle = context.tblQuizQuestions.Where(q => q.PK_Question_id == questionId).Select(q => q.question).FirstOrDefault();

                //Decalare to return the value
                string[] result = new string[6];

                int f = 0; int p = 0; int m = 0; int distinction = 0;
                for (int i = 0; i < studentList.Count; i++)
                {
                    int we = studentList[i].Value;
                    var d  = context.tblQuizResults.Where(q => q.FK_studentId == we && q.FK_QuestionId == questionId).Select(q => q.marks).ToList();

                    float mark = float.Parse(d.Sum().ToString());

                    float status = mark / questionMark * 100;


                    if (status < 50)
                    {
                        f++;
                    }
                    else if (status > 50 && status < 60)
                    {
                        p++;
                    }
                    else if (status > 60 && status < 70)
                    {
                        m++;
                    }
                    else if (status > 70)
                    {
                        distinction++;
                    }
                }

                result[0] = studentList.Count.ToString();
                result[1] = f.ToString();           // Fail
                result[2] = p.ToString();           //Pass
                result[3] = m.ToString();           // Merit
                result[4] = distinction.ToString(); //distinction
                result[5] = questionTitle;

                return(result);
            }
        }
Пример #20
0
        public bool GetStdudentAttempt(int studentId, int quizId)
        {
            bool result = false;

            using (myProjectEntities context = new myProjectEntities())
            {
                var s = context.tblQuizResults.Where(q => q.FK_studentId == studentId && q.FK_QuizId == quizId).FirstOrDefault();
                if (s == null)
                {
                    result = true;
                }
            }
            return(result);
        }
Пример #21
0
        //try enter
        public bool quizAnswerSave(QuizResultModel quizRData)
        {
            bool      result = false;
            Stopwatch st     = new Stopwatch();

            using (myProjectEntities context = new myProjectEntities())
            {
                Mapper.CreateMap <QuizResultModel, tblQuizResult>();

                tblQuizResult newQuizR = Mapper.Map <QuizResultModel, tblQuizResult>(quizRData);

                context.tblQuizResults.Add(newQuizR);
                int q = context.SaveChanges();
            }
            return(result);
        }
Пример #22
0
        //Update Lecture data
        public bool updateLecture(lectureModel lectureData)
        {
            bool result = false;

            using (myProjectEntities context = new myProjectEntities())
            {
                Mapper.CreateMap <lectureModel, tblLecture>();
                tblLecture s = Mapper.Map <lectureModel, tblLecture>(lectureData);
                context.Entry(s).State = EntityState.Modified;
                int q = context.SaveChanges();
                if (q == 1)
                {
                    result = true;
                }
                return(result);
            }
        }
Пример #23
0
        //Create Options
        public bool CreateOption(optionModel optionData)
        {
            bool result = false;

            using (myProjectEntities context = new myProjectEntities())
            {
                Mapper.CreateMap <optionModel, tblQuizOption>();
                tblQuizOption newOpt = Mapper.Map <optionModel, tblQuizOption>(optionData);
                context.tblQuizOptions.Add(newOpt); //Execute the add function
                int q = context.SaveChanges();
                if (q == 1)
                {
                    result = true;         //set return to true
                }
            }
            return(result);
        }
Пример #24
0
        //Update Options
        public bool UpdateOption(optionModel optionData)
        {
            bool result = false;

            using (myProjectEntities context = new myProjectEntities())
            {
                Mapper.CreateMap <optionModel, tblQuizOption>();
                tblQuizOption s = Mapper.Map <optionModel, tblQuizOption>(optionData);
                context.Entry(s).State = EntityState.Modified;
                int q = context.SaveChanges();
                if (q == 1)
                {
                    result = true;
                }
                return(result);
            }
        }
Пример #25
0
        // Get class performance on question by quizId
        public DataSet getAllQuestionsByQuiz(int quizId)
        {
            //Declare for return type
            DataSet   ds = new DataSet();
            DataTable dt = new DataTable();

            dt.Columns.Add("qId");
            dt.Columns.Add("question");
            dt.Columns.Add("marks");

            using (myProjectEntities context = new myProjectEntities())
            {
                List <tblQuizQuestion> allQuestionList = context.tblQuizQuestions.Where(q => q.FK_Quiz_id == quizId).ToList(); //All the qustions of the quiz

                //Loop through each question
                foreach (tblQuizQuestion item in allQuestionList)
                {
                    //marks for that particular question
                    var sd = from p in context.tblQuizResults where p.FK_QuestionId == item.PK_Question_id
                             group p.marks by p.FK_QuestionId into g
                             select new { qID = g.Key, total = g.Sum(i => i.Value) };

                    float s = 0; //To get the sum of all the student's answer

                    foreach (var gr in sd)
                    {
                        s = (float)gr.total;
                    }
                    //number of students who attend the quiz
                    var c = context.tblQuizResults.Where(q => q.FK_QuizId == item.FK_Quiz_id).Select(g => g.FK_studentId).Distinct().ToList();

                    //Marks of Question
                    float qmark = (float)item.marks;

                    //average marks of the class: dividing sum of marks by total number of students for that quiz
                    float pc = s / c.Count;

                    //Change average makrs to percentage
                    float per = pc / qmark * 100;

                    dt.Rows.Add(item.PK_Question_id, item.question, per);
                }
                ds.Tables.Add(dt);
            }
            return(ds);
        }
Пример #26
0
        //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);
            }
        }
Пример #27
0
        //Delete Option
        public bool DeleteOptionByOptionId(int[] optionId)
        {
            bool result = false; int q = 0;

            using (myProjectEntities context = new myProjectEntities())
            {
                for (int i = 0; i < optionId.Length; i++)
                {
                    q = context.spDeleteOption(optionId[i]);
                }
                if (q != 0)
                {
                    result = true;         //set return to true
                }
            }

            return(result);
        }
Пример #28
0
        //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);
            }
        }
Пример #29
0
        //Performance on all the question of the Quiz by Student.
        //This is in marks.
        public DataSet getAllQuesByQuizId(int studentId, int quizId)
        {
            DataSet   ds = new DataSet();
            DataTable dt = new DataTable();

            dt.Columns.Add("qId");
            dt.Columns.Add("qDetail");
            dt.Columns.Add("marks");
            // dt.Columns.Add("total");
            using (myProjectEntities context = new myProjectEntities())
            {
                //List of Questions for that particular quiz
                var quesList = context.tblQuizQuestions.Where(q => q.FK_Quiz_id == quizId).Select(q => q.PK_Question_id).ToList();

                //Loop through all the questions
                foreach (var ques in quesList)
                {
                    int quesId = (int)ques;//QUestion_id

                    //Question
                    string question = context.tblQuizQuestions.Where(q => q.PK_Question_id == quesId).Select(q => q.question).FirstOrDefault();

                    //Total marks for that question
                    float w = (float)context.tblQuizQuestions.Where(q => q.PK_Question_id == quesId).Select(q => q.marks).FirstOrDefault();

                    //Get scored marks for that question by Student_id
                    var mark = from p in context.tblQuizResults
                               where p.FK_QuestionId == quesId && p.FK_studentId == studentId
                               group p.marks by p.FK_QuestionId into g
                               select new { qID = g.Key, total = g.Sum(i => i.Value) };

                    float score = 0;//To convert
                    foreach (var m in mark)
                    {
                        score = (float)m.total;
                    }

                    float s = score / w * 100;
                    dt.Rows.Add(quesId, question, s);
                }
                ds.Tables.Add(dt);
            }
            return(ds);
        }
Пример #30
0
        public bool createFeedAnswer(int studentId, int lectureId, float answer)
        {
            bool  result = false;
            float fValue = 0;

            using (myProjectEntities context = new myProjectEntities())
            {
                int            q3        = 0;
                var            feedId    = context.tblFeedbacks.Where(q => q.FK_Lecture_id == lectureId).FirstOrDefault();
                FeedbackAnswer feedModel = new FeedbackAnswer();
                feedModel.feedback_answer = answer;
                feedModel.feedback_date   = System.DateTime.Now;
                feedModel.FK_Feedback_id  = Convert.ToInt32(feedId.PK_Feedback_id);
                feedModel.FK_Student_id   = studentId;


                Mapper.CreateMap <FeedbackAnswer, tblFeedbackResult>();

                tblFeedbackResult newFeed = Mapper.Map <FeedbackAnswer, tblFeedbackResult>(feedModel);

                context.tblFeedbackResults.Add(newFeed);

                q3 = context.SaveChanges();
                //Now update feedback value in tblFeedback
                //This is because after every submission there is change in the overall feedback value
                if (q3 != 0)
                {
                    var   valueFeed = context.tblFeedbackResults.Where(q => q.FK_Feedback_id == feedModel.FK_Feedback_id).Select(q => q.feedback_answer).AsEnumerable();
                    float d         = float.Parse(valueFeed.Aggregate((a, b) => a + b).ToString());
                    int   count     = valueFeed.Count();
                    fValue = d / count;

                    tblFeedback f = context.tblFeedbacks.Where(q => q.PK_Feedback_id == feedModel.FK_Feedback_id).FirstOrDefault();
                    f.feedback_value       = fValue;
                    context.Entry(f).State = EntityState.Modified;
                    q3 = context.SaveChanges();
                    if (q3 != 0)
                    {
                        result = true;
                    }
                }
            }
            return(result);
        }