static void Main(string[] args) { /* * Onderstaande code dient uitlsuitend als referentie. Er zijn meerdere (betere) oplossingen denkbaar. * Dit is code die je later in unittests zal plaatsen. */ // EF Code plaatsen we in een eigen class. Deze noemen we een repository. StudentRepository studentRepository = new StudentRepository(); WorkshopRepository workshopRepository = new WorkshopRepository(); DepartmentRepository departmentRepository = new DepartmentRepository(); Console.WriteLine("***** Students *****"); var students = studentRepository.GetStudents(); foreach (var student in students) { Console.WriteLine($"{student.Firstname} {student.Lastname} \t- email: {student.Email}"); } // Opdracht 2.1 Console.WriteLine(); Console.WriteLine("***** Workshops *****"); var workshops = workshopRepository.WorkshopInformation(); foreach (var workshop in workshops) { Console.WriteLine($"Workshop: {workshop.Name} Aantal registraties: {workshop.Registrations.Count}"); foreach (var teacher in workshop.Teachers) { Console.WriteLine($"\tTeacher: {teacher.Fullname}"); } foreach (var registration in workshop.Registrations) { Console.WriteLine($"\tStudent: {registration.Student.Fullname}"); } } Console.WriteLine(); Console.WriteLine("***** Student met Workshop *****"); // Opdracht 2.2 // We halen de eerste Workshop op vanuit de lijst die we al in het geheugen hebben. var ws = workshops.First(); Student s = new Student { Email = "*****@*****.**", Firstname = "Sjaak", Lastname = "Student" }; Registration r = new Registration { Student = s, Workshop = ws }; try { studentRepository.AddStudentWithWorkShop(r); Console.WriteLine($"Student {r.Student.Fullname} is bewaard en ingeschreven voor {r.Workshop.Name}"); } catch (Exception ex) { // Beter om je eigen Exception class te maken Console.WriteLine(ex.Message); } // Opdracht 2.3 Console.WriteLine(); Console.WriteLine("***** Workshops zonder Registratie *****"); int numWorkshops = workshopRepository.DeleteWorkshopWithoutRegistration(); Console.WriteLine($"{numWorkshops} workshops zijn verwijderd omdat er geen registratie is gekoppeld. De overgebleven workshops zijn: "); var ovgWorkshops = workshopRepository.GetWorkshops(); foreach (var workshop in workshops) { Console.WriteLine($"Workshop: {workshop.Name}"); } // Opdracht 2.4 Console.WriteLine(); Console.WriteLine("***** Budgetverhoging *****"); var departments = departmentRepository.BudgetIncrease(10); foreach (var department in departments) { Console.WriteLine($"Departement: {department.Name} heeft nu een budget van {department.Budget} euro"); } // Opdracht 2.5 Console.WriteLine(); Console.WriteLine("***** Teacher Wissel *****"); foreach (var workshop in workshops) { Console.WriteLine($"Workshop: {workshop.Name}"); foreach (var teacher in workshop.Teachers) { Console.WriteLine($"\tTeacher: {teacher.Fullname} - ID: {teacher.Id}"); } } Console.Write("Geef het ID van de teacher die wil ruilen: "); var teacherFrom = Convert.ToInt32(Console.ReadLine()); Console.Write("Geef het ID van de teacher met wie wordt geruild: "); var teacherTo = Convert.ToInt32(Console.ReadLine()); var geruild = workshopRepository.SwapTeachers(teacherFrom, teacherTo); if (geruild) { Console.WriteLine("De teachers zijn omgewisseld"); } else { Console.WriteLine("Geen teachers omgewisseld, controleer de ID van de teachers"); } // Opdracht 2.6 Console.WriteLine(); Console.WriteLine("***** Studenten aantallen *****"); Tuple <int, int> t = studentRepository.StudentenMetEnZonderRegistratie(); Console.WriteLine($"Studenten met registratie: {t.Item1} - Zonder registratie: {t.Item2}"); // Einde programma Console.WriteLine(); Console.Write("Press a key to exit"); Console.ReadLine(); }