public void Compare(DirectoryInfo referenceDirectory, DirectoryInfo targetDirectory)
        {
            CompareSubdirectories(referenceDirectory, targetDirectory);
            CompareFiles(referenceDirectory, targetDirectory);

            foreach(DirectoryInfo di in referenceDirectory.EnumerateDirectories().Where( d => targetDirectory.HasSubdirectory(d) ))
            {
                Compare(di, targetDirectory.EnumerateDirectories(di.Name).Single());
            }
        }
 private void CompareSubdirectories(DirectoryInfo referenceDirectory, DirectoryInfo targetDirectory)
 {
     foreach (DirectoryInfo di in targetDirectory.EnumerateDirectories().Where(d => !referenceDirectory.HasSubdirectory(d)))
     {
         OnModification(new ModificationEventArgs(di.FullName, ModificationType.Added));
     }
     foreach (DirectoryInfo di in referenceDirectory.EnumerateDirectories().Where(d => !targetDirectory.HasSubdirectory(d)))
     {
         OnModification(new ModificationEventArgs(di.FullName, ModificationType.Removed));
     }
 }
Example #3
0
		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);
		}