Exemple #1
0
        private bool View_createExamAttendance()
        {
            var endTime  = view.ExamDetail.StartTime.Value;
            var examTake = new ExamTake()
            {
                ExamDetailId = view.ExamDetail.ExamDetailId,
                StudentId    = view.StudentInfo.StudentId,
                StartTime    = DateTime.Now,
                EndTime      = endTime.AddMinutes(view.ExamDetail.Duration.Value),
                ExamCodeId   = ""
            };

            try
            {
                context.ExamTakes.InsertOnSubmit(examTake);
                context.SubmitChanges();
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        private void UpdateStudentMark(object sender, EventArgs e)
        {
            try
            {
                var examDetail = sender as ExamListViewModel;
                var startTime  = examDetail.StartTime.Value + new TimeSpan(0, 0, examDetail.Duration.Value, 0, 0);
                if (startTime < DateTime.Now)
                {
                    using (var context = new QLThiTracNghiemDataContext())
                    {
                        var students = (from s in context.Students
                                        join c in context.Classrooms on s.ClassroomId equals c.ClassroomId
                                        join t in context.Teaches on c.ClassroomId equals t.ClassroomId
                                        where t.SubjectId == examDetail.SubjectId && t.GradeId == examDetail.GradeId
                                        select s).ToList();

                        var examCodes = context.ExamCodes.Where(ec => ec.SubjectId == examDetail.SubjectId && ec.GradeId == ec.GradeId && ec.IsPracticeExam == false).First();

                        foreach (var s in students)
                        {
                            if (!context.ExamTakes.Any(et => et.StudentId == s.StudentId && et.ExamDetailId == examDetail.ExamDetailId))
                            {
                                var examTake = new ExamTake
                                {
                                    ExamDetailId = examDetail.ExamDetailId,
                                    StudentId    = s.StudentId,
                                    StartTime    = examDetail.StartTime,
                                    EndTime      = examDetail.StartTime,
                                    ExamCodeId   = examCodes.ExamCodeId
                                };

                                var examResult = new ExamResult
                                {
                                    ExamDetailId              = examDetail.ExamDetailId,
                                    StudentId                 = s.StudentId,
                                    NumberOfCorrectAnswers    = 0,
                                    NumberOfQuestionsAnswered = 0,
                                    Mark       = 0,
                                    ExamCodeId = examCodes.ExamCodeId
                                };

                                context.ExamTakes.InsertOnSubmit(examTake);
                                context.ExamResults.InsertOnSubmit(examResult);
                            }
                        }

                        context.SubmitChanges();
                    }

                    view.UpdateStudentMarkMessage = "Succeed";
                }
                else
                {
                    view.UpdateStudentMarkMessage = "NotYet";
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.ToString());
                view.UpdateStudentMarkMessage = "Failed";
            }
        }