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); } } }