private void ReloadForm() { lblStdId.Text = sys.Student.StId.ToString(); lblStdName.Text = sys.Student.StName; lblStdEmail.Text = sys.Student.StEmail; lblStdSSN.Text = sys.Student.Ssn.ToString(); lblStdBirth.Text = sys.Student.BirthDate.ToShortDateString(); lblStdDept.Text = sys.Department.DeptName; CourseBoxes.Clear(); this.flowPanelCourses.Controls.Clear(); sys.Courses.ForEach(c => { var cb = new CourseBox(c); CourseBoxes.Add(cb); this.flowPanelCourses.Controls.Add(cb.Parent); cb.BtnStartExam.Click += (sender, e) => { ExamForm exam = new ExamForm(); //this.Hide(); exam.LoadExam(sys.Student, cb.Course); exam.ShowDialog(); }; }); }
private void LoadForm() { var data = sys.Exams.Select(e => new { Course = sys.Courses.FirstOrDefault(c => c.CrsId == e.CrsId), e.CrsId, e.ExamId, e.TrialNo, }).Select(e => new { courseName = e.Course.CrsName, e.CrsId, e.ExamId, e.TrialNo, Grade = e.Course.StCrs.FirstOrDefault(c => c.CrsId == e.CrsId).Grade, MaxGrad = e.Course.StCrs.FirstOrDefault(c => c.CrsId == e.CrsId).MaxGrade }).ToList(); gridExams.DataSource = data; lblStdId.Text = sys.Student.StId.ToString(); lblStdName.Text = sys.Student.StName; lblStdEmail.Text = sys.Student.StEmail; lblStdSSN.Text = sys.Student.Ssn.ToString(); lblStdBirth.Text = sys.Student.BirthDate.ToShortDateString(); lblStdDept.Text = sys.Department.DeptName; CourseBoxes.Clear(); this.flowPanelCourses.Controls.Clear(); sys.Courses.ForEach(c => { var cb = new CourseBox(c); CourseBoxes.Add(cb); this.flowPanelCourses.Controls.Add(cb.Parent); cb.BtnStartExam.Click += (sender, e) => { try { ExamForm exam = new ExamForm(); //this.Hide(); exam.LoadExam(sys.Student, cb.Course); exam.ShowDialog(); // SetStudent(sys.Student); } catch (Exception ex) { MessageBox.Show($"Cann't Create Exam: Message: {ex.Message}", "Exam Fail", MessageBoxButtons.OK, MessageBoxIcon.Error); } }; cb.LblCrsEndDate.Text = $"{c.DateEnd}"; var trail = sys.Exams.Where(ex => ex.CrsId.Equals(c.CrsId)).OrderByDescending(ex => ex.TrialNo) .FirstOrDefault(e => e.CrsId.Equals(c.CrsId))?.TrialNo ?? 0; cb.LblCrsStatus.Text = $"{trail}"; if (trail >= sys.MaxTrial || c.DateEnd > DateTime.Now) { btnStartExam.Enabled = false; } //int MaxTrail = c.StCrs.Where(s => s.StId.Equals(sys.Student.StId)).FirstOrDefault().MaxGrade; //if (trail >= MaxTrail || c.DateEnd > DateTime.Now) // btnStartExam.Enabled = false; }); // fill exam grid with data }