public static EcfDayOfWeekSet GetEcfDaysOfWeek(this UntisLessonTime lessonTime) { return(lessonTime.Day switch { DayOfWeek.Monday => EcfDayOfWeekSet.Monday, DayOfWeek.Tuesday => EcfDayOfWeekSet.Monday, DayOfWeek.Wednesday => EcfDayOfWeekSet.Wednesday, DayOfWeek.Thursday => EcfDayOfWeekSet.Thursday, DayOfWeek.Friday => EcfDayOfWeekSet.Friday, DayOfWeek.Saturday => EcfDayOfWeekSet.Saturday, _ => EcfDayOfWeekSet.Sunday });
public static List <EcfTemporalExpression> GetEcfTemporalExpressions(this UntisLesson lesson, UntisLessonTime lessonTime, UntisGeneralSettings generalSettings) { var temporalExpressions = new List <EcfTemporalExpression>(); if (lesson.Occurence != null) { foreach (var date in lesson.GetDateInstances(generalSettings.SchoolYearBeginDate, lessonTime.Day)) { temporalExpressions.Add(new EcfOneTimeExpression() { Operation = EcfTemporalExpressionOperation.Include, StartTimepoint = new DateTimeOffset(date).AddMinutes(lessonTime.StartTime.TotalMinutes), EndTimepoint = new DateTimeOffset(date).AddMinutes(lessonTime.SlotGroupEndTime == null ? lessonTime.EndTime.TotalMinutes : ((TimeSpan)lessonTime.SlotGroupEndTime).TotalMinutes) }); } } else { temporalExpressions.Add(new EcfWeeklyTimePeriodExpression() { Operation = EcfTemporalExpressionOperation.Include, StartTimepoint = new DateTimeOffset((DateTime)lesson.StartDate).AddMinutes(lessonTime.StartTime.TotalMinutes), EndTimepoint = new DateTimeOffset((DateTime)lesson.EndDate).AddMinutes(lessonTime.SlotGroupEndTime == null ? lessonTime.EndTime.TotalMinutes : ((TimeSpan)lessonTime.SlotGroupEndTime).TotalMinutes), DaysOfWeek = lessonTime.GetEcfDaysOfWeek(), WeeksInterval = 1, ValidFrom = lesson.ValidFrom, ValidTo = lesson.ValidTo }); } return(temporalExpressions); }