Beispiel #1
0
 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);
        }