public Slide Load(FileInfo file, string unitName, int slideIndex, CourseSettings settings) { var quiz = file.DeserializeXml<Quiz>(); BuildUp(quiz, file.Directory, settings); quiz.InitQuestionIndices(); var slideInfo = new SlideInfo(unitName, file, slideIndex); return new QuizSlide(slideInfo, quiz); }
public Slide Load(FileInfo file, string unitName, int slideIndex, CourseSettings settings) { var quiz = file.DeserializeXml<Quiz>(); int index = 1; foreach (var b in quiz.Blocks.OfType<AbstractQuestionBlock>()) { b.QuestionIndex = index++; } var slideInfo = new SlideInfo(unitName, file, slideIndex); return new QuizSlide(slideInfo, quiz); }
public Slide Load(FileInfo file, string unitName, int slideIndex, CourseSettings settings) { var lesson = file.DeserializeXml<Lesson>(); var dir = file.Directory; var context = new BuildUpContext(dir, settings, lesson); var blocks = lesson.Blocks.SelectMany(b => b.BuildUp(context, ImmutableHashSet<string>.Empty)).ToList(); var slideInfo = new SlideInfo(unitName, file, slideIndex); if (blocks.OfType<ExerciseBlock>().Any()) return new ExerciseSlide(blocks, slideInfo, lesson.Title, Guid.Parse(lesson.Id)); return new Slide(blocks, slideInfo, lesson.Title, Guid.Parse(lesson.Id)); }
private static SlideBlock[] DeserializeBlocks(string blocksXml) { var input = $@" <Lesson xmlns='https://ulearn.azurewebsites.net/lesson'> {blocksXml} </Lesson>"; File.WriteAllText("temp.xml", input); var fileInfo = new FileInfo("temp.xml"); var buildUpContext = new BuildUpContext(new DirectoryInfo("."), CourseSettings.DefaultSettings, null); return fileInfo.DeserializeXml<Lesson>().Blocks .SelectMany(b => b.BuildUp(buildUpContext, ImmutableHashSet<string>.Empty)) .ToArray(); }