// 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(); }