private async Task <int> ExportAbsenceReasons(CsvReader csvReader, EcfTableWriter ecfTableWriter, string[] ecfHeaders) { var ecfRecordCounter = 0; if (ecfHeaders != null && ecfHeaders.Length > 0) { await ecfTableWriter.WriteHeadersAsync(ecfHeaders); } else { await ecfTableWriter.WriteHeadersAsync( EcfHeaders.Id, EcfHeaders.Code, EcfHeaders.Name, EcfHeaders.StatisticalCode); } var gpuReader = new GpuReader <GpuAbsenceReason>(csvReader); await foreach (var reason in gpuReader.ReadAsync()) { ecfTableWriter.TrySetValue(EcfHeaders.Id, reason.ShortName); ecfTableWriter.TrySetValue(EcfHeaders.Code, reason.ShortName); ecfTableWriter.TrySetValue(EcfHeaders.Name, reason.LongName); ecfTableWriter.TrySetValue(EcfHeaders.StatisticalCode, reason.StatisticalCode); await ecfTableWriter.WriteAsync(); ecfRecordCounter++; } return(ecfRecordCounter); }
private async Task <int> ExportTeacherAbsences(CsvReader csvReader, EcfTableWriter ecfTableWriter, string[] ecfHeaders) { var ecfRecordCounter = 0; if (ecfHeaders != null && ecfHeaders.Length > 0) { await ecfTableWriter.WriteHeadersAsync(ecfHeaders); } else { await ecfTableWriter.WriteHeadersAsync( EcfHeaders.Id, EcfHeaders.TeacherId, EcfHeaders.StartTimepoint, EcfHeaders.EndTimepoint, EcfHeaders.ReasonId, EcfHeaders.Description); } var gpuReader = new GpuReader <GpuAbsence>(csvReader); await foreach (var absence in gpuReader.ReadAsync()) { if (absence.Type == GpuAbsenceType.Teacher) { if (absence.IsInsideTerm(_untisDocument.GeneralSettings) && absence.GetEcfTeacherId(_untisDocument.Teachers) != null) { ecfTableWriter.TrySetValue(EcfHeaders.Id, absence.Id); ecfTableWriter.TrySetValue(EcfHeaders.TeacherId, absence.GetUntisTeacherId()); ecfTableWriter.TrySetValue(EcfHeaders.StartTimepoint, absence.StartDate); ecfTableWriter.TrySetValue(EcfHeaders.EndTimepoint, absence.EndDate); ecfTableWriter.TrySetValue(EcfHeaders.ReasonId, absence.Reason); ecfTableWriter.TrySetValue(EcfHeaders.Description, absence.Text); await ecfTableWriter.WriteAsync(); _untisAbsencesCache.Add(absence.Id); ecfRecordCounter++; } } } return(ecfRecordCounter); }
private async Task <int> ExportSubstituteLessons(CsvReader csvReader, EcfTableWriter ecfTableWriter, string[] ecfHeaders) { var ecfRecordCounter = 0; if (ecfHeaders != null && ecfHeaders.Length > 0) { await ecfTableWriter.WriteHeadersAsync(ecfHeaders); } else { await ecfTableWriter.WriteHeadersAsync( EcfHeaders.Id, EcfHeaders.CourseId, EcfHeaders.RoomIdList, EcfHeaders.SchoolClassIdList, EcfHeaders.TeacherIdList, EcfHeaders.TemporalExpressions); } var gpuReader = new GpuReader <GpuSubstitution>(csvReader); await foreach (var substitution in gpuReader.ReadAsync()) { if (substitution.Date >= _untisDocument.GeneralSettings.TermBeginDate && substitution.Date <= _untisDocument.GeneralSettings.TermEndDate && substitution.Type != GpuSubstitutionType.Cancellation && substitution.Type != GpuSubstitutionType.Exemption && substitution.GetEcfCourseId(_untisDocument.Lessons) != null) { ecfTableWriter.TrySetValue(EcfHeaders.Id, substitution.GetEcfId()); ecfTableWriter.TrySetValue(EcfHeaders.CourseId, substitution.GetEcfCourseId(_untisDocument.Lessons)); ecfTableWriter.TrySetValue(EcfHeaders.RoomIdList, substitution.GetEcfRoomIdList()); ecfTableWriter.TrySetValue(EcfHeaders.SchoolClassIdList, substitution.GetEcfSchoolClassIdList()); ecfTableWriter.TrySetValue(EcfHeaders.TeacherIdList, substitution.GetEcfTeacherIdList()); ecfTableWriter.TrySetValue(EcfHeaders.TemporalExpressions, substitution.GetEcfTemporalExpressions(_untisDocument.TimeGrids, _untisDocument.Lessons)); await ecfTableWriter.WriteAsync(); ecfRecordCounter++; } } return(ecfRecordCounter); }
private async Task <int> ExportLessonGaps(CsvReader csvReader, EcfTableWriter ecfTableWriter, string[] ecfHeaders) { var ecfRecordCounter = 0; if (ecfHeaders != null && ecfHeaders.Length > 0) { await ecfTableWriter.WriteHeadersAsync(ecfHeaders); } else { await ecfTableWriter.WriteHeadersAsync( EcfHeaders.Id, EcfHeaders.LessonId, EcfHeaders.Reasons, EcfHeaders.Resolutions, EcfHeaders.Description, EcfHeaders.TemporalExpressions); } var gpuReader = new GpuReader <GpuSubstitution>(csvReader); await foreach (var substitution in gpuReader.ReadAsync()) { if (substitution.Date >= _untisDocument.GeneralSettings.TermBeginDate && substitution.Date <= _untisDocument.GeneralSettings.TermEndDate && substitution.GetEcfLessonId(_untisDocument.Lessons) != null) { ecfTableWriter.TrySetValue(EcfHeaders.Id, substitution.GetEcfLessonGapId()); ecfTableWriter.TrySetValue(EcfHeaders.LessonId, substitution.GetEcfLessonId(_untisDocument.Lessons)); ecfTableWriter.TrySetValue(EcfHeaders.Reasons, substitution.GetEcfReasons(_untisAbsencesCache)); ecfTableWriter.TrySetValue(EcfHeaders.Resolutions, substitution.GetEcfResolutions()); ecfTableWriter.TrySetValue(EcfHeaders.Description, substitution.Remark); ecfTableWriter.TrySetValue(EcfHeaders.TemporalExpressions, substitution.GetEcfTemporalExpressions(_untisDocument.TimeGrids, _untisDocument.Lessons)); await ecfTableWriter.WriteAsync(); ecfRecordCounter++; } } return(ecfRecordCounter); }