Example #1
0
        private CourseYearConfig ParseCourseYear(Course course, string yearDir)
        {
            try
            {
                var yearConfig     = Path.Combine(yearDir, "config.yaml");
                var settingsConfig = Path.Combine(yearDir, "settings.yaml");
                var groupsConfig   = Path.Combine(yearDir, "groups.yaml");
                var year           = new CourseYearConfig {
                    Year = Path.GetFileName(yearDir)
                };

                // 1) required config.yaml
                if (!File.Exists(yearConfig))
                {
                    return(null);
                }
                (year.Problems, year.Yaml) = YamlRead.ReadFromFile <List <CourseProblem> >(yearConfig);

                // 2) optional settings.yaml
                if (File.Exists(settingsConfig))
                {
                    var settConf = YamlRead.ReadFromFile <SettingsConfig>(settingsConfig);
                    year.SettingsConfig = settConf.data;
                }
                else
                {
                    year.SettingsConfig = new SettingsConfig();
                }

                // 3) optional groups.yaml
                if (File.Exists(groupsConfig))
                {
                    var groupConf = YamlRead.ReadFromFile <CourseGroup>(groupsConfig);
                    year.CourseGroup = groupConf.data;
                }
                else
                {
                    year.CourseGroup = new CourseGroup();
                }

                return(year);
            }
            catch (DetailedException e)
            {
                var msg = $"Error while parsing file {e.File}: ";
                course.Errors.Add(msg);
                course.Errors.AddRange(e.Messages);
                Console.Error.WriteLine(msg);
                return(null);
            }
        }
Example #2
0
        public static SettingsConfig CreateDummySettingsConfig(CourseYearConfig courseYearConfig)
        {
            var dummy  = new SettingsConfig();
            var course = courseYearConfig.Course;

            dummy.Teachers = course.CourseConfig.Teachers
                             .Select(i =>
                                     new SettingsConfigTeacher
            {
                Id       = i.id,
                Tags     = i.Tags,
                Students = course.CourseConfig.Students,
                Problems = courseYearConfig.Problems.Select(j => j.Id).ToList(),
            }).ToList();

            return(dummy);
        }
Example #3
0
        private void ParseCourseYear(string yearDir, List <CourseYearConfig> result)
        {
            var yearConfig     = Path.Combine(yearDir, "config.yaml");
            var settingsConfig = Path.Combine(yearDir, "settings.yaml");

            if (File.Exists(yearConfig))
            {
                // parse config.yaml
                var cfg = new CourseYearConfig {
                    Year = Path.GetFileName(yearDir)
                };

                (cfg.Problems, cfg.Yaml) = YamlRead.ReadFromFile <List <CourseProblem> >(yearConfig);
                cfg.SettingsConfig       = ParseSettingConfigOrDefault(settingsConfig);

                result.Add(cfg);
            }
        }