Exemple #1
0
        public async Task <IResponse> ImportTeachersAsync(short year, short section)
        {
            logger.LogDebug("Hole Lehrkräfte aus SchILD...");
            var teachers = await schildExporter.GetTeachersAsync();

            logger.LogDebug($"{teachers.Count} Lehrkräfte geladen.");

            if (OnlyVisibleEntities)
            {
                logger.LogDebug("Ausgeblendete Lehrkräfte entfernen");
                teachers = teachers.WhereIsVisible().ToList();
            }

            var data = teachers
                       .Select(teacher =>
            {
                var subjects = teacher.Subjects.Select(x => x.Id.ToString()).ToList();

                if (subjects == null)
                {
                    throw new Exception("Fehler: subjects darf nicht null sein.");
                }

                return(new TeacherData
                {
                    Id = teacher.Acronym,
                    Acronym = teacher.Acronym,
                    Firstname = teacher.Firstname,
                    Lastname = teacher.Lastname,
                    Email = teacher.Email,
                    Title = teacher.Title,
                    Gender = GetGender(teacher.Gender),
                    Tags = GetTeacherTags(teacher, year, section),
                    Subjects = subjects
                });
            })
                       .ToList();

            return(await iccImporter.ImportTeachersAsync(data));
        }