public void InsertAssignmentPerStudentPerCourse()
        {
            //Όλα τα assignments. Φυσικά τα θέλω >0 το πλήθος.
            var queryAss = from c in dbContext.Assignments select c;

            if (!dbContext.Assignments.Any())
            {
                Console.WriteLine("No assignments to connect to courses.");
                return;
            }

            //Όλα τα μαθήματα. Φυσικά τα θέλω >0 το πλήθος.
            var queryCr = from c in dbContext.Courses select c;

            if (!dbContext.Courses.Any())
            {
                Console.WriteLine("No courses to assign the trainers to.");
                return;
            }

            //Τυπώνω assignments και μαθήματα για να ξέρει ο χρήστης αυτά που έχει στη διάθεση του.
            Console.WriteLine("The available assignments are the following:");
            foreach (var assInfo in queryAss)
            {
                Console.WriteLine("{0}. Title: {1}.", assInfo.id, assInfo.title);
            }
            Console.WriteLine();

            Console.WriteLine("The available courses are the following:");
            foreach (var crInfo in queryCr)
            {
                Console.WriteLine("{0}: {1}", crInfo.id, crInfo.title);
            }
            Console.WriteLine();

            Console.WriteLine("Type a valid assignment id and a valid course id to assign that assignment to that course. Take note that:\n" +
                              "The two ID ust be given in that order.\n" +
                              "The two ID must be separated by one or more spaces.\n" +
                              "In case the assignment is already given at that course, no changes will occur.");
            string inputa, inputb;

            if (!ConsoleRead.ReadTwoIntegers(out inputa, out inputb))
            {
                Console.WriteLine("Wrong input.");
                return;
            }
            //Η ReadTwoIntegers έχει εξασφαλίσει ότι το Parse πορεί να συμβεί
            int ida = int.Parse(inputa);
            int idb = int.Parse(inputb);

            /*Ορίζω και αρχικοποιώ μια μεταβλητή assignment και μαθήματος. Είμαι σίγουρος ότι κι οι δυο πίνακες έχουν
             * τουλάχιστον ένα στοιχείο οπότε τους αρχικοποιώ με το πρώτο - δεν έχει σημασία, απλά για να μη χτυπάει παρακάτω
             * ο κώδικας - καθώς οι τιμές τους στη πραγματικότητα δίνονται εντός if.*/
            Assignment wAss = queryAss.First();
            Course     wCr  = queryCr.First();
            //Ελέγχει αν το id assignment είναι υπαρκτό
            bool found = false;

            foreach (var assInfo in queryAss)
            {
                if (assInfo.id == ida)
                {
                    found = !found;
                    wAss  = assInfo;
                    break;
                }
            }
            if (!found)
            {
                Console.WriteLine("Given assignment id doesn't exist.");
                return;
            }
            //Ελέγχει αν το id μαθήματος είναι υπαρκτό
            found = false;
            foreach (var crInfo in queryCr)
            {
                if (crInfo.id == idb)
                {
                    found = !found;
                    wCr   = crInfo;
                    break;
                }
            }
            if (!found)
            {
                Console.WriteLine("Given course id doesn't exist.");
                return;
            }

            //Διατρέχω το πίνακα Course_has_Assignment για ήδη υπάρχουσα αντιστοίχηση.
            if (dbContext.Course_has_Assignment.Any(a => a.Assignment_id == ida && a.Course_id == idb))
            {
                Console.WriteLine("Given assignment already belongs to given course.");
                return;
            }

            //Αντιστοιχώ assignment-μάθημα στη περίπτωση που όλα πήγαν καλά.
            Course_has_Assignment cr_assNew = new Course_has_Assignment()
            {
                Assignment_id = ida,
                Course_id     = idb
            };

            dbContext.Course_has_Assignment.Add(cr_assNew);
            cr_assNew.Course     = wCr;
            cr_assNew.Assignment = wAss;

            //Τώρα θα αναθέσω σε όλους τους μαθητές του μαθήματος το assignment αυτό.
            foreach (var std in wCr.Students)
            {
                Student_gets_Assignment i = new Student_gets_Assignment()
                {
                    Student_id    = std.id,
                    Course_id     = cr_assNew.Course_id,
                    Assignment_id = cr_assNew.Assignment_id,
                    //Ο μαθητής δεν έχει ακόμη παραδώσει το assignment για να πάρει βαθμούς
                    totalMark = null,
                    oralMark  = null
                };
                dbContext.Student_gets_Assignment.Add(i);
                i.Student = std;
                i.Course_has_Assignment = cr_assNew;
            }

            dbContext.SaveChanges();
        }
        public void InsertTrainerPerCourse()
        {
            //Όλοι οι εκπαιδευτές. Φυσικά τους θέλω >0 το πλήθος.
            var queryTr = from c in dbContext.Trainers select c;

            if (!dbContext.Trainers.Any())
            {
                Console.WriteLine("No trainers to connect to courses.");
                return;
            }

            //Όλα τα μαθήματα. Φυσικά τα θέλω >0 το πλήθος.
            var queryCr = from c in dbContext.Courses select c;

            if (!dbContext.Courses.Any())
            {
                Console.WriteLine("No courses to assign the trainers to.");
                return;
            }

            //Τυπώνω εκπαιδευτές και μαθήματα για να ξέρει ο χρήστης αυτά που έχει στη διάθεση του.
            Console.WriteLine("The available trainers are the following:");
            foreach (var trInfo in queryTr)
            {
                Console.WriteLine("{0}: {1} {2}", trInfo.id, trInfo.firstName, trInfo.lastName);
            }
            Console.WriteLine();

            Console.WriteLine("The available courses are the following:");
            foreach (var crInfo in queryCr)
            {
                Console.WriteLine("{0}: {1}", crInfo.id, crInfo.title);
            }
            Console.WriteLine();

            Console.WriteLine("Type a valid trainer id and a valid course id to assign that trainer to that course. Take note that:\n" +
                              "The two ID ust be given in that order.\n" +
                              "The two ID must be separated by one or more spaces.\n" +
                              "In case the trainer already teaches at that course, no changes will occur.");
            string inputa, inputb;

            if (!ConsoleRead.ReadTwoIntegers(out inputa, out inputb))
            {
                Console.WriteLine("Wrong input.");
                return;
            }
            //Η ReadTwoIntegers έχει εξασφαλίσει ότι το Parse πορεί να συμβεί
            int ida = int.Parse(inputa);
            int idb = int.Parse(inputb);

            /*Ορίζω και αρχικοποιώ μια μεταβλητή εκπαιδευτή και μαθήματος. Είμαι σίγουρος ότι κι οι δυο πίνακες έχουν
             * τουλάχιστον ένα στοιχείο οπότε τους αρχικοποιώ με το πρώτο - δεν έχει σημασία, απλά για να μη χτυπάει παρακάτω
             * ο κώδικας - καθώς οι τιμές τους στη πραγματικότητα δίνονται εντός if.*/
            Trainer wTr = queryTr.First();
            Course  wCr = queryCr.First();
            //Ελέγχει αν το id εκπαιδευτή είναι υπαρκτό
            bool found = false;

            foreach (var trInfo in queryTr)
            {
                if (trInfo.id == ida)
                {
                    found = !found;
                    wTr   = trInfo;
                    break;
                }
            }
            if (!found)
            {
                Console.WriteLine("Wrong input.");
                return;
            }
            //Ελέγχει αν το id μαθήματος είναι υπαρκτό
            found = false;
            foreach (var crInfo in queryCr)
            {
                if (crInfo.id == idb)
                {
                    found = !found;
                    wCr   = crInfo;
                    break;
                }
            }
            if (!found)
            {
                Console.WriteLine("Wrong input.");
                return;
            }

            //Διατρέχω τα μαθήματα του δωσμένου εκπαιδευτή για ήδη υπάρχουσα αντιστοίχηση.
            foreach (var crInfo in wTr.Courses)
            {
                if (crInfo.id == idb)
                {
                    Console.WriteLine("That trainer is already teaching at given course.");
                    return;
                }
            }

            //Αντιστοιχώ εκπαιδευτή-μάθημα στη περίπτωση που όλα πήγαν καλά.
            wTr.Courses.Add(wCr);
            //wCr.Trainers.Add(wTr); //το ανάποδο γίνεται αυτόματα(;)

            dbContext.SaveChanges();
        }