protected void btnAddStudentRecord_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }

            List <Course> courses        = (List <Course>)Session["courses"];
            Course        selectedCourse = courses.Find(c => c.Code == drpCourseSelection.SelectedValue);

            using (StudentRecordEntities entities = new StudentRecordEntities())
            {
                Student student = (from s in entities.Students
                                   where s.Id == txtStudentNumber.Text
                                   select s).FirstOrDefault <Student>();

                if (student == null)
                {
                    student      = new Student();
                    student.Id   = txtStudentNumber.Text;
                    student.Name = txtStudentName.Text;
                    entities.Students.Add(student);
                    entities.SaveChanges();
                }

                AcademicRecord academicRecord = new AcademicRecord();
                academicRecord.CourseCode = drpCourseSelection.SelectedValue;
                //academicRecord.StudentId = txtStudentNumber.Text;
                academicRecord.Grade = int.Parse(txtGrade.Text);
                //academicRecord.Course = selectedCourse;
                academicRecord.Student = student;

                Course course = (from c in entities.Courses
                                 where c.Code == selectedCourse.Code
                                 select c).FirstOrDefault <Course>();

                course.AcademicRecords.Add(academicRecord);
                entities.SaveChanges();
            }
            displayStudentRecordTable(selectedCourse);
        }
        protected void StudentIdDBValidate(object source, ServerValidateEventArgs args)
        {
            // validate if the student record is existed the selected course in database
            List <Course> courses        = (List <Course>)Session["courses"];
            Course        selectedCourse = courses.Find(c => c.Code == drpCourseSelection.SelectedValue);

            using (StudentRecordEntities entities = new StudentRecordEntities())
            {
                AcademicRecord academicRecord = (from r in entities.AcademicRecords
                                                 where r.StudentId == txtStudentNumber.Text && r.CourseCode == selectedCourse.Code
                                                 select r).FirstOrDefault <AcademicRecord>();

                if (academicRecord != null)
                {
                    args.IsValid = false;
                }
                else
                {
                    args.IsValid = true;
                }
            }
            displayStudentRecordTable(selectedCourse);
        }