Example #1
0
        private static void CreateCourseFromExample(string courseId, string path, FileInfo helpPackage)
        {
            helpPackage.CopyTo(path, true);
            var nsResolver = new XmlNamespaceManager(new NameTable());

            nsResolver.AddNamespace("course", "https://ulearn.azurewebsites.net/course");
            nsResolver.AddNamespace("lesson", "https://ulearn.azurewebsites.net/lesson");
            nsResolver.AddNamespace("quiz", "https://ulearn.azurewebsites.net/quiz");
            using (var zip = ZipFile.Read(path, new ReadOptions {
                Encoding = Encoding.GetEncoding(866)
            }))
            {
                UpdateXmlElement(zip["Course.xml"], "//course:Course/course:title", courseId, zip, nsResolver);
                foreach (var entry in zip.SelectEntries("name = *.lesson.xml").Where(entry => CourseLoader.IsSlideFile(Path.GetFileName(entry.FileName))))
                {
                    UpdateXmlElement(entry, "//lesson:Lesson/lesson:id", Guid.NewGuid().ToString(), zip, nsResolver);
                }
                foreach (var entry in zip.SelectEntries("name = *.quiz.xml").Where(entry => CourseLoader.IsSlideFile(Path.GetFileName(entry.FileName))))
                {
                    UpdateXmlAttribute(entry, "//quiz:Quiz", "id", Guid.NewGuid().ToString(), zip, nsResolver);
                }
                foreach (var entry in zip.SelectEntries("name = *.cs").Where(entry => CourseLoader.IsSlideFile(Path.GetFileName(entry.FileName))))
                {
                    UpdateCsFiles(entry, Guid.NewGuid().ToString(), zip);
                }
            }
        }