Beispiel #1
0
        // 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));
                }
            }
        }