private static void InsertSlides(SlideInfoDbContext context) { if (context.Slides.Any()) { return; } var dirs = FileFilter.Filter(AppDirectories.SlideStorage, FileFilter.OpenSlideExtensions); foreach (var path in dirs) { var osr = new OpenSlide(path); var slide = new Slide(osr); context.Slides.Add(slide); context.SaveChanges(); var properties = osr.ReadProperties(); foreach (var slideProp in properties) { var property = new Property(slide.Id, slideProp.Key, slideProp.Value); context.Properties.Add(property); } } context.SaveChanges(); }
public static void UpdateSlides(SlideInfoDbContext context) { context.Database.EnsureCreated(); var dirs = FileFilter.Filter(AppDirectories.SlideStorage, FileFilter.OpenSlideExtensions); foreach (var path in dirs) { var osr = new OpenSlide(path); var newSlide = new Slide(osr); var existingSlide = context.Slides.FirstOrDefault(s => s.FilePath == path); if (existingSlide != null) { newSlide.Id = existingSlide.Id; context.Entry(existingSlide).CurrentValues.SetValues(newSlide); } else { context.Add(newSlide); var properties = osr.ReadProperties(); foreach (var slideProp in properties) { var property = new Property(newSlide.Id, slideProp.Key, slideProp.Value); context.Add(property); } } } context.SaveChanges(); }