Diese Bibliothek stellt alle Klassen zur Verfügung, um Daten in das ICC mittels .NET Core hochzuladen.
Die Installation erfolgt via NuGet.
Alle Methoden sind asynchron und müssen daher mit einem await
aufgerufen werden. Die Nutzung eines DI-Frameworks (bspw. Autofac) ist mittels des Interfaces IIccImporter
möglich.
var logger = Microsoft.Extensions.Logging.LoggerFactory.CreateLogger<IccImporter>(); // Falls man kein DI nutzt, erstellt man einen Logger
var importer = new IccImporter(logger);
importer.BaseUrl = "https://icc.example.com/";
importer.Token = "YourToken";
var absences = new List<AbsenceData>();
// Absenzen konstruieren
var response = await importer.ImportAbsencesAsync(absences);
if(response is ImportResponse) {
var importResponse = response as ImportResponse;
/*
* Ausgabe über Erfolg generieren
*/
} else if(response is ErrorResponse) {
var errorResponse = response as ErrorResponse;
/*
* Fehlermeldung erzeugen
* Man hat Zugriff auf errorResponse.ResponseCode, errorResponse.ResponseBody und errorResponse.Message
*/
}
Weitere Methoden zum Importieren:
ImportAppointmentsAsync(appointments)
: TermineImportAppointmentCategoriesAsync(categories)
: Termin-KategorienImportExamsAsync(exams)
: KlausurenImportGradesAsync(grades)
: KlassenImportGradeTeachersAsync(gradeTeachers)
: KlassenleitungenImportStudentsAsync(students)
: Schülerinnen und SchülerImportStudyGroupsAsync(studyGroups)
: LerngruppenImportStudyGroupMembershipsAsync(memberships)
: LerngruppenmitgliedschaftenImportSubjectsAsync(subjects)
: FächerImportSubstitutionsAsync(substitutions)
: VertretungenImportTeachersAsync(teachers)
: LehrkräfteImportTimetableLessonsAsync(period, lessons)
: Stundenplan-Einträge - ⚠ Hier muss stets die Periode angegeben werden, zu denen die Einträge gehörenImportTimetablePeriodsAsync(periods)
: Stundenplan-PeriodenImportSupervisionsAsync(period, supervisions)
: Aufsichten - ⚠ Hier muss stets die Periode angegeben werden, zu denen die Einträge gehörenImportTuitionsAsync(tuitions)
: UnterrichteImportInfotextsAsync(infotexts)
: TagestexteImportAbsencesAsync(absences)
: AbsenzenImportPrivacyCategoriesAsync(categories)
: Datenschutz-KategorienImportRoomsAsync(rooms)
: Räume
Dann bitte in den Issue schauen, ob das Problem bereits bekannt ist. Falls nicht, kann dort ein Issue geöffnet werden. Support via E-Mail wird nicht angeboten.
Immer gerne - einfach ein Issue öffnen oder noch besser: einen Pull Request einreichen!
MIT.