static void Main(string[] args) { IDBProvider provider = new XMLDBProvider(); //initialization of Data Base Provider UniversityCreator creator = new UniversityCreator("BSU"); //initialization of University Creator University university = creator.CreateUniversity(provider); //call of University Creator university.Output(); //Output result for full university Student newExtraStudent = new Student("Inokentiy", "Gundeev", 20, 7.6); //creating a new student (university.Departments[1] as Faculty).studentAdded += DisplayNotification; //subscribing event with message about adding a new student on method for outputting messages (university.Departments[1] as Faculty).AddExtraStudent(newExtraStudent); //adding an extra student to faculty (provider as XMLDBProvider).completedSaving += DisplayNotification; //subscribing event with message about saving on method for outputting messages provider.XMLSave(university); //saving university to XML provider.JSONSave(university); //saving university to JSON (university.Departments[1] as Faculty).Students.Sort(); //sorting students from faculty by average mark Console.WriteLine("Sorting students by averege mark:"); (university.Departments[1] as Faculty).Students.ForEach(std => Console.WriteLine(std)); (university.Departments[1] as Faculty).Students.Sort(new StudentComparer());//sorting students from faculty by lastname Console.WriteLine("Sorting students by lastname:"); (university.Departments[1] as Faculty).Students.ForEach(std => Console.WriteLine(std)); }
public University GetUniversity(IDBProvider provider) //method of creation of new university { University university = new University(); //initialization of new university //Work with faculties List <Faculty> faculties = provider.GetFaculties(); //list for faculties, which we get from DBProvider foreach (Faculty faculty in faculties) //adding faculties to a department list { university.AddDepartment(faculty); } //Work with institutes List <Institute> institutes = provider.GetInstitutes(); //list for faculties, which we get from DBProvider foreach (Institute institute in institutes) //adding faculties to a department list { university.AddDepartment(institute); } //Work with services List <Service> services = provider.GetServices(); //list for services, which we get from DBProvider foreach (Service service in services) //adding services to a department list { university.AddDepartment(service); } List <DBOFaculty> dBOFaculties = provider.GetDBOFaculties(); List <DBOStudent> dBOStudents = provider.GetDBOStudents(); List <DBODean> dBODeans = provider.GetDBODeans(); university.DistributeDeans(dBODeans, dBOFaculties); university.DistributeStudents(dBOStudents, dBOFaculties); university.Output();//output of departments lists return(university); }