public Course LoadCourse(DirectoryInfo dir) { var courseId = dir.Name; dir = dir.HasSubdirectory("Slides") ? dir.Subdirectory("Slides") : dir; var settings = CourseSettings.Load(dir); var slides = LoadSlides(dir, settings).ToArray(); CheckDuplicateSlideIds(slides); var notes = LoadInstructorNotes(dir, courseId); var title = settings.Title ?? GetTitle(dir); return new Course(courseId, title, slides, notes, settings, dir); }
private void MoveFiles(DirectoryInfo source, DirectoryInfo destination) { foreach (var file in source.GetFiles()) { if (this.reservedFiles.Contains(file.Name)) continue; FileInfo destinationFile = file.Rebase(destination); if (destinationFile.Exists) { destinationFile.Delete(); this.logger.Info("Replaced file {0}", file.Name); } file.MoveTo(destinationFile.FullName); } foreach (var dir in source.GetDirectories()) { DirectoryInfo destinationDir = destination.Subdirectory(dir.Name); if (!destinationDir.Exists) { destinationDir.Create(); this.logger.Info("Created directory {0}.", destinationDir); } this.MoveFiles(dir, destinationDir); } }
public static Node BuildSiteMap(DirectoryInfo rootPath, dynamic globalSettings) { // Process Pages return ProcessPages(rootPath.Subdirectory(Constants.PAGES), globalSettings); }