protected override async Task HandleSupervisionEvent(SupervisionEvent @event, IIccOutput outputSettings) { Configure(outputSettings); var mapping = outputSettings.WeekMapping; var weeks = mapping.Weeks; if (mapping.UseWeekModulo) { weeks = weekMappingHelper.ComputeMapping(mapping.Weeks); } var supervisions = new List <TimetableSupervisionData>(); foreach (var supervision in @event.Supervisions) { var supervisionWeeks = supervision.Weeks ?? Enumerable.Range(1, outputSettings.WeekMapping.Weeks.Count); if (string.IsNullOrEmpty(supervision.Teacher)) { logger.LogDebug("Skipping supervision with empty teacher."); continue; } var namedWeeks = supervisionWeeks .Select(x => weeks.ContainsKey(x) ? weeks[x] : null) .Where(x => x != null) .Distinct(); foreach (var week in namedWeeks) { supervisions.Add(new TimetableSupervisionData { Id = Guid.NewGuid().ToString(), Lesson = supervision.Lesson, Day = supervision.WeekDay, Location = supervision.Location, Teacher = supervision.Teacher, IsBefore = true, Week = week }); } } var response = await iccImporter.ImportSupervisionsAsync(outputSettings.SupervisionPeriod, supervisions.ToList()); await HandleResponseAsync(response); }
protected abstract Task HandleSupervisionEvent(SupervisionEvent @event, T outputSettings);
public Task HandleSupervisionEvent(SupervisionEvent @event, IOutput outputSettings) { return(HandleSupervisionEvent(@event, CastSettings(outputSettings))); }
private void HandleSupervisionEvent(SupervisionEvent obj) { Handle("supervision", (handler, settings) => handler.HandleSupervisionEvent(obj, settings)); }
protected override Task HandleSupervisionEvent(SupervisionEvent @event, IFileOutput outputSettings) { return(WriteJson(@event.Supervisions, outputSettings, "supervisions.json")); }