// GET: StudentAssignment public ActionResult AllStudentAssignments(string sortOrder, string searchName, string searchCourse, string searchAssignment, int?searchMaxGrade, int?searchMinGrade) { ViewBag.NameSort = String.IsNullOrEmpty(sortOrder) ? "NameDesc" : ""; ViewBag.CourseSort = sortOrder == "CourseAsc" ? "CourseDesc" : "CourseAsc"; ViewBag.AssignmentSort = sortOrder == "AssignmentAsc" ? "AssignmentDesc" : "AssignmentAsc"; ViewBag.GradeSort = sortOrder == "GradeAsc" ? "GradeDesc" : "GradeAsc"; ViewBag.SortOrder = sortOrder; ViewBag.SearchedName = searchName; ViewBag.SearchedCourse = searchCourse; ViewBag.SearchedAssignment = searchAssignment; ViewBag.SearchedMaxGrade = searchMaxGrade; ViewBag.SearchedMinGrade = searchMinGrade; StudAssignRepository studAssignRepository = new StudAssignRepository(); var studAssign = studAssignRepository.GetAll(); // ------------------------ Ταξινόμηση φθίνουσα/αύξουσα ---------------------------------------------------- switch (sortOrder) { case "NameDesc": studAssign = studAssign.OrderByDescending(x => x.Student.FirstName).ThenByDescending(x => x.Student.LastName); break; case "CourseAsc": studAssign = studAssign.OrderBy(x => x.Course.Title); break; case "CourseDesc": studAssign = studAssign.OrderByDescending(x => x.Course.Title); break; case "AssignmentAsc": studAssign = studAssign.OrderBy(x => x.Assignment); break; case "AssignmentDesc": studAssign = studAssign.OrderByDescending(x => x.Assignment); break; case "GradeAsc": studAssign = studAssign.OrderBy(x => x.Grade); break; case "GradeDesc": studAssign = studAssign.OrderByDescending(x => x.Grade); break; default: studAssign = studAssign.OrderBy(x => x.Student.FirstName).ThenBy(x => x.Student.LastName); break; } //---------------------------------- Φιλτράρισμα ------------------------------------------ if (!string.IsNullOrWhiteSpace(searchName)) { studAssign = studAssign.Where(x => x.Student.FirstName.ToUpper().Contains(searchName.ToUpper())); } if (!string.IsNullOrWhiteSpace(searchCourse)) { studAssign = studAssign.Where(x => x.Course.Title.ToUpper().Contains(searchCourse.ToUpper())); } if (!(searchAssignment is null)) { studAssign = studAssign.Where(x => x.Assignment.Title.ToUpper().Contains(searchAssignment.ToUpper())); } if (!(searchMinGrade is null)) { studAssign = studAssign.Where(x => x.Grade >= searchMinGrade); } if (!(searchMaxGrade is null)) { studAssign = studAssign.Where(x => x.Grade <= searchMaxGrade); } return(View(studAssign)); }
static void Main(string[] args) { using (MyDatabase db = new MyDatabase()) { TrainerRepository trainerRepository = new TrainerRepository(); StudentRepository studentRepository = new StudentRepository(); AssignmentRepository assignmentRepository = new AssignmentRepository(); CourseRepository courseRepository = new CourseRepository(); StudAssignRepository studAssignmentRepository = new StudAssignRepository(); var studentlist = studentRepository.GetAll(); var trainerlist = trainerRepository.GetAll(); var assignmentlist = assignmentRepository.GetAll(); var courselist = courseRepository.GetAll(); var studassignlist = studAssignmentRepository.GetAll(); //====================== Grades per student foreach (var student in studentlist) { Console.WriteLine(student.FirstName); foreach (var assignment in student.StudentAssignments) { Console.WriteLine("\t\t" + assignment.Assignment.Title + " " + assignment.Grade); } } //=============================== Grades per sudent per course Console.WriteLine("====================GRADES PER COURSE PER STUDENTS=================================="); foreach (var studas in studassignlist) { Console.WriteLine(studas.Student.FirstName + " " + studas.Course.Title); Console.WriteLine("\t\t\t\t" + studas.Assignment.Title + " " + studas.Grade); } foreach (var stude in studentlist) { Console.WriteLine($"Student: {stude.LastName}"); foreach (var cours in stude.Courses) { Console.Write("\t\t"); Console.WriteLine("Course: " + cours.Title); foreach (var assign in cours.Assignments) { Console.Write("\t\t\t\t"); Console.WriteLine("Assignment title: " + assign.Title); } } Console.WriteLine(); } //Console.WriteLine("========================================================================"); foreach (var course in courselist) { Console.Write("In " + course.Title); Console.WriteLine(" are enrolled " + course.Students.Count() + " students"); foreach (var studentCourse in course.Students) { Console.Write("\t\t"); Console.WriteLine(studentCourse.FirstName + " " + studentCourse.LastName); } Console.WriteLine(); } //================================== Assignments per course=========================== foreach (var item in courselist) { Console.WriteLine(item.Title); foreach (var item2 in item.Assignments) { Console.WriteLine("\t\t\t" + item2.Title); } } //=========================================== Students per course per assignment ============================== foreach (var stud in studentlist) { Console.WriteLine(stud.FirstName); foreach (var item in stud.StudentAssignments) { Console.WriteLine("\t\t" + item.Assignment.Title); Console.WriteLine("\t\t\t" + item.Course.Title); } } //=========================================== Average grade per course ============================== List <double> avgGradPerCourse = new List <double>(); foreach (var co in courselist) { Console.WriteLine(co.Title); double sum = 0; int count = 0; foreach (var item in co.StudentAssignments) { //Console.WriteLine("\t\t" + item.Assignment.Title); //Console.WriteLine("\t\t\t" + item.Grade); sum = sum + item.Grade; count += 1; } avgGradPerCourse.Add(sum / count); //λιστα με τη μεση βαθμολογία για κάθε μάθημα Console.WriteLine("Average grade is: " + (sum / count)); } } }