internal SDScsv GetSDScsv() { Console.WriteLine(string.Format("School Data Sync CSV samenstellen...")); // https://support.office.com/nl-nl/article/CSV-bestanden-voor-synchronisatie-van-schoolgegevens-9f3c3c2b-7364-4f6e-a959-e8538feead70 SDScsv _sdscsv = new SDScsv(); List <School> Schools = GetSchools().ToList(); List <Section> Sections = GetSections().ToList(); List <Teacher> Teachers = GetTeachers().ToList(); List <Student> Students = GetStudents().ToList(); List <TeacherRoster> TeacherRosters = GetTeacherRosters(); List <StudentEnrollment> StudentEnrollments = GetStudentEnrollments(Sections); _sdscsv.Schools = Schools; _sdscsv.Sections = Sections; _sdscsv.Teachers = Teachers; _sdscsv.Students = Students; _sdscsv.TeacherRosters = TeacherRosters; _sdscsv.StudentEnrollments = StudentEnrollments; Console.WriteLine(); return(_sdscsv); }
private static void StartProgram() { eh.WriteLog("Sync gestart", EventLogEntryType.Information, 100); ServiceHelper sh = new ServiceHelper(umServiceBrinNr, umServiceUsername, umServicePassword, umServiceSchooljaar); List <UmService.wisVestiging> vestigingenList = sh.GetVestigingen(booleanFilterBylocation, includedLocationCode); if (vestigingenList.Count > 0) { List <VestigingLesgroepModel> vestigingLesgroepen = sh.GetLesgroepVestiging(vestigingenList); if (vestigingLesgroepen.Count > 0) { List <UserLesgroepModel> leerlingLesgroepen = sh.GetStudentInfo(vestigingLesgroepen); if (leerlingLesgroepen.Count > 0) { List <UserLesgroepModel> docentLesgroepen = sh.GetTeacherInfo(vestigingLesgroepen); if (docentLesgroepen.Count > 0) { FileHelper fh = new FileHelper(); if (seperateOutputDirectoryForEachLocation) { foreach (VestigingLesgroepModel vestigingLesgroep in vestigingLesgroepen) { SDScsvHelper lh = new SDScsvHelper( vestigingLesgroepen.Where(v => v.Vestiging == vestigingLesgroep.Vestiging).ToList(), docentLesgroepen.Where(v => v.VestigingLesgroep.Vestiging == vestigingLesgroep.Vestiging).ToList(), leerlingLesgroepen.Where(v => v.VestigingLesgroep.Vestiging == vestigingLesgroep.Vestiging).ToList()); SDScsv schoolDataSyncCSV = lh.GetSDScsv(); fh.WriteSDStoFiles(OutputDirectory + vestigingLesgroep.Vestiging.afkorting + "\\", schoolDataSyncCSV); } } else { SDScsvHelper lh = new SDScsvHelper(vestigingLesgroepen, docentLesgroepen, leerlingLesgroepen); SDScsv schoolDataSyncCSV = lh.GetSDScsv(); fh.WriteSDStoFiles(OutputDirectory, schoolDataSyncCSV); } } else { eh.WriteLog("Geen docentinformatie kunnen downloaden", EventLogEntryType.Warning, 100); } } else { eh.WriteLog("Geen leerlinginformatie kunnen downloaden", EventLogEntryType.Warning, 100); } } else { eh.WriteLog("Geen lesgroepen gevonden", EventLogEntryType.Warning, 100); } } else { eh.WriteLog("Geen vestigingen gevonden", EventLogEntryType.Warning, 100); } Console.WriteLine("======================================"); eh.WriteLog("Sync voltooid", EventLogEntryType.Information, 100); Thread.Sleep(10000); }
internal bool WriteSDStoFiles(string path, SDScsv sdscsv) { EventLogHelper eh = new EventLogHelper(); if (sdscsv.Schools.Count() > 0 && sdscsv.Sections.Count() > 0 && sdscsv.Teachers.Count() > 0 && sdscsv.Students.Count() > 0 && sdscsv.TeacherRosters.Count() > 0 && sdscsv.StudentEnrollments.Count > 0) { if (!Directory.Exists(path)) { eh.WriteLog(String.Format("Output directory bestaat niet, maar wordt nu aangemaakt: {0} ", path), EventLogEntryType.Information, 100); Directory.CreateDirectory(path); } Console.Write(string.Format("CSV-bestanden schrijven... ")); using (TextWriter writer = new StreamWriter(path + @"School.csv")) { var csv = new CsvWriter(writer); csv.Configuration.RegisterClassMap<SchoolCSVMap>(); csv.WriteRecords(sdscsv.Schools); // where values implements IEnumerable } using (TextWriter writer = new StreamWriter(path + @"Section.csv")) { var csv = new CsvWriter(writer); csv.Configuration.RegisterClassMap<SectionCSVMap>(); csv.WriteRecords(sdscsv.Sections); // where values implements IEnumerable } using (TextWriter writer = new StreamWriter(path + @"Student.csv")) { var csv = new CsvWriter(writer); csv.Configuration.RegisterClassMap<StudentCSVMap>(); csv.WriteRecords(sdscsv.Students); // where values implements IEnumerable } using (TextWriter writer = new StreamWriter(path + @"Teacher.csv")) { var csv = new CsvWriter(writer); csv.Configuration.RegisterClassMap<TeacherCSVMap>(); csv.WriteRecords(sdscsv.Teachers); // where values implements IEnumerable } using (TextWriter writer = new StreamWriter(path + @"TeacherRoster.csv")) { var csv = new CsvWriter(writer); csv.Configuration.RegisterClassMap<TeacherRosterCSVMap>(); csv.WriteRecords(sdscsv.TeacherRosters); // where values implements IEnumerable } using (TextWriter writer = new StreamWriter(path + @"StudentEnrollment.csv")) { var csv = new CsvWriter(writer); csv.Configuration.RegisterClassMap<StudentEnrollmentCSVMap>(); csv.WriteRecords(sdscsv.StudentEnrollments); // where values implements IEnumerable } if (sdscsv.Schools.Count == 1) { eh.WriteLog(String.Format("CSV-bestanden geschreven: {0}, {1} Lesgroepen, {2} Docenten, {3} Leerlingen, {4} Docentlesgroepen, {5} Leerlinglesgroepen, naar {6}", sdscsv.Schools[0].Name, sdscsv.Sections.Count, sdscsv.Teachers.Count, sdscsv.Students.Count, sdscsv.TeacherRosters.Count, sdscsv.StudentEnrollments.Count, path), EventLogEntryType.Information, 200); } else { eh.WriteLog(String.Format("CSV-bestanden geschreven: {0} Scholen, {1} Lesgroepen, {2} Docenten, {3} Leerlingen, {4} Docentlesgroepen, {5} Leerlinglesgroepen, naar {6}", sdscsv.Schools.Count, sdscsv.Sections.Count, sdscsv.Teachers.Count, sdscsv.Students.Count, sdscsv.TeacherRosters.Count, sdscsv.StudentEnrollments.Count, path), EventLogEntryType.Information, 200); } } else { if (sdscsv.Schools.Count == 1) { eh.WriteLog(String.Format("Te weinig informatie om naar CSV te schrijven: {0}, {1} Lesgroepen, {2} Docenten, {3} Leerlingen, {4} Docentlesgroepen, {5} Leerlinglesgroepen", sdscsv.Schools[0].Name, sdscsv.Sections.Count, sdscsv.Teachers.Count, sdscsv.Students.Count, sdscsv.TeacherRosters.Count, sdscsv.StudentEnrollments.Count), EventLogEntryType.Warning, 100); } else { eh.WriteLog(String.Format("Te weinig informatie om naar CSV te schrijven: {0} Scholen, {1} Lesgroepen, {2} Docenten, {3} Leerlingen, {4} Docentlesgroepen, {5} Leerlinglesgroepen", sdscsv.Schools.Count, sdscsv.Sections.Count, sdscsv.Teachers.Count, sdscsv.Students.Count, sdscsv.TeacherRosters.Count, sdscsv.StudentEnrollments.Count), EventLogEntryType.Warning, 100); } } return true; }