public static void AddWatchedHistory(DBMovieInfo movie, DBUser user) { DBWatchedHistory history = new DBWatchedHistory(); history.DateWatched = DateTime.Now; history.Movie = movie; history.User = user; movie.WatchedHistory.Add(history); history.Commit(); movie.Commit(); }
public bool Revert(DBMovieInfo movie) { // attempt to rename the folder if needed try { if (movie.OriginalDirectoryName != String.Empty) { DirectoryInfo originalDir = Utility.GetMovieBaseDirectory(movie.LocalMedia[0].File.Directory); int lastDirSeperator = originalDir.FullName.LastIndexOf(Path.DirectorySeparatorChar); string newDirName = originalDir.FullName.Remove(lastDirSeperator + 1) + movie.OriginalDirectoryName; if (originalDir.FullName != newDirName) { originalDir.MoveTo(newDirName); movie.OriginalDirectoryName = String.Empty; movie.Commit(); } } } catch (Exception e) { logger.ErrorException("Failed to revert renaming of directory: " + movie.LocalMedia[0].File.DirectoryName, e); return false; } // wait a sec for directory changes to propagate. Thread.Sleep(100); foreach (DBLocalMedia currMedia in movie.LocalMedia) { if (currMedia.OriginalFileName == String.Empty) continue; string fileName = Path.GetFileNameWithoutExtension(currMedia.FullPath); string fileExt = Path.GetExtension(currMedia.FullPath); string filePath = currMedia.File.DirectoryName; // attempt to rename the file based on localMediaItem.OriginalFileName. try { File.Move(currMedia.FullPath, filePath + "\\" + currMedia.OriginalFileName + fileExt); // look for additional files with the same name. foreach (FileInfo currSubFile in currMedia.File.Directory.GetFiles(fileName + ".*")) { File.Move(currSubFile.FullName, filePath + "\\" + currMedia.OriginalFileName + currSubFile.Extension); Thread.Sleep(100); } // remove original file name from the DB. currMedia.OriginalFileName = String.Empty; } catch (Exception e) { logger.ErrorException("Failed to revert renaming of file: " + fileName, e); return false; } } return true; }
private DBMovieInfo movieDetailsUpdateWorker(DBMovieInfo movie) { // indicate that we are doing some work here setWorkingAnimationStatus(true); logger.Info("Updating movie details for '{0}'", movie.Title); MovingPicturesCore.DataProviderManager.Update(movie); movie.Commit(); foreach (DBLocalMedia lm in movie.LocalMedia) { lm.UpdateMediaInfo(); lm.Commit(); } // indicate we are done setWorkingAnimationStatus(false); return movie; }
private DBMovieInfo movieArtworkUpdateWorker(DBMovieInfo movie) { // indicate that we are doing some work here setWorkingAnimationStatus(true); logger.Info("Updating covers for '{0}'", movie.Title); if (movie.CoverFullPath.Trim().Length == 0) { MovingPicturesCore.DataProviderManager.GetArtwork(movie); movie.Commit(); } logger.Info("Updating backdrop for '{0}'", movie.Title); if (movie.BackdropFullPath.Trim().Length == 0) { new LocalProvider().GetBackdrop(movie); MovingPicturesCore.DataProviderManager.GetBackdrop(movie); movie.Commit(); } // indicate we are done setWorkingAnimationStatus(false); return movie; }
// Associates the given file(s) to the given movie object. Also creates all // relevent user related data. private void AssignFileToMovie(IList<DBLocalMedia> localMedia, DBMovieInfo movie, bool update) { if (localMedia == null || movie == null || localMedia.Count == 0) return; // loop through the local media files and clear out any movie assignments foreach (DBLocalMedia currFile in localMedia) { RemoveCommitedRelations(currFile); } // write the file(s) to the DB int count = 1; foreach (DBLocalMedia currFile in localMedia) { currFile.Part = count; currFile.Commit(); count++; } movie.LocalMedia.Clear(); movie.LocalMedia.AddRange(localMedia); // update, associate, and commit the movie if (update) { MovingPicturesCore.DataProviderManager.Update(movie); MovingPicturesCore.DataProviderManager.GetArtwork(movie); MovingPicturesCore.DataProviderManager.GetBackdrop(movie); } foreach (DBLocalMedia currFile in localMedia) currFile.CommitNeeded = false; // create user related data object for each user movie.UserSettings.Clear(); foreach (DBUser currUser in DBUser.GetAll()) { DBUserMovieSettings userSettings = new DBUserMovieSettings(); userSettings.User = currUser; userSettings.Commit(); movie.UserSettings.Add(userSettings); userSettings.CommitNeeded = false; } movie.PopulateDateAdded(); movie.Commit(); }
private void CycleArtwork(DBMovieInfo movie, bool cycleBack = false) { if (movie == null) return; if (cycleBack) { movie.PreviousCover(); } else { movie.NextCover(); } browser.AutoRefresh = false; movie.Commit(); browser.AutoRefresh = true; // update the new cover art in the facade var listItem = browser.GetMovieListItem(movie); if (listItem != null) { listItem.IconImage = movie.CoverThumbFullPath.Trim(); listItem.IconImageBig = movie.CoverThumbFullPath.Trim(); listItem.RefreshCoverArt(); } PublishArtwork(movie); }