private void MoveMedia() { if (!_config.StoreMediaInDB) { // All pictures have initially been stored in the DB. Move the binaries to disk. var fileSystemStorageProvider = new FileSystemMediaStorageProvider(new MediaFileSystem()); var mediaStorages = _ctx.Set <MediaStorage>(); using (var scope = new DbContextScope(ctx: _ctx, autoDetectChanges: true, autoCommit: false)) { var mediaFiles = _ctx.Set <MediaFile>() .Expand(x => x.MediaStorage) .Where(x => x.MediaStorageId != null) .ToList(); foreach (var mediaFile in mediaFiles) { if (mediaFile.MediaStorage?.Data?.LongLength > 0) { fileSystemStorageProvider.Save(mediaFile, mediaFile.MediaStorage.Data.ToStream()); mediaFile.MediaStorageId = null; mediaFile.MediaStorage = null; } } scope.Commit(); } } }
private void MoveMedia() { if (!_config.StoreMediaInDB) { // All pictures have initially been stored in the DB. Move the binaries to disk. var fileSystemStorageProvider = new FileSystemMediaStorageProvider(new MediaFileSystem()); var mediaStorages = _ctx.Set <MediaStorage>(); // pictures var pics = _ctx.Set <Picture>() .Expand(x => x.MediaStorage) .Where(x => x.MediaStorageId != null) .ToList(); foreach (var pic in pics) { if (pic.MediaStorage != null && pic.MediaStorage.Data != null && pic.MediaStorage.Data.LongLength > 0) { fileSystemStorageProvider.Save(pic.ToMedia(), pic.MediaStorage.Data); try { mediaStorages.Remove(pic.MediaStorage); } catch { } pic.MediaStorageId = null; } } _ctx.SaveChanges(); // downloads var downloads = _ctx.Set <Download>() .Expand(x => x.MediaStorage) .ToList(); foreach (var download in downloads) { if (download.MediaStorage != null && download.MediaStorage.Data != null && download.MediaStorage.Data.LongLength > 0) { fileSystemStorageProvider.Save(download.ToMedia(), download.MediaStorage.Data); try { mediaStorages.Remove(download.MediaStorage); } catch { } download.MediaStorageId = null; } } _ctx.SaveChanges(); } }