public void RemoveRecord() { logger.Info("RemoveRecordsWithoutPhysicalFiles : {0}", FullServerPath); List <SVR_AnimeEpisode> episodesToUpdate = new List <SVR_AnimeEpisode>(); List <SVR_AnimeSeries> seriesToUpdate = new List <SVR_AnimeSeries>(); SVR_VideoLocal v = VideoLocal; using (var session = DatabaseFactory.SessionFactory.OpenSession()) { if (v.Places.Count <= 1) { episodesToUpdate.AddRange(v.GetAnimeEpisodes()); seriesToUpdate.AddRange(v.GetAnimeEpisodes().Select(a => a.GetAnimeSeries())); using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); RepoFactory.VideoLocal.DeleteWithOpenTransaction(session, v); transaction.Commit(); } CommandRequest_DeleteFileFromMyList cmdDel = new CommandRequest_DeleteFileFromMyList(v.Hash, v.FileSize); cmdDel.Save(); } else { episodesToUpdate.AddRange(v.GetAnimeEpisodes()); seriesToUpdate.AddRange(v.GetAnimeEpisodes().Select(a => a.GetAnimeSeries())); using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); transaction.Commit(); } } } episodesToUpdate = episodesToUpdate.DistinctBy(a => a.AnimeEpisodeID).ToList(); foreach (SVR_AnimeEpisode ep in episodesToUpdate) { if (ep.AnimeEpisodeID == 0) { ep.PlexContract = null; RepoFactory.AnimeEpisode.Save(ep); } try { ep.PlexContract = Helper.GenerateVideoFromAnimeEpisode(ep); RepoFactory.AnimeEpisode.Save(ep); } catch (Exception ex) { LogManager.GetCurrentClassLogger().Error(ex, ex.ToString()); } } seriesToUpdate = seriesToUpdate.DistinctBy(a => a.AnimeSeriesID).ToList(); foreach (SVR_AnimeSeries ser in seriesToUpdate) { ser.QueueUpdateStats(); } }
public void RemoveRecord() { logger.Info("Removing VideoLocal_Place recoord for: {0}", FullServerPath ?? VideoLocal_Place_ID.ToString()); List <SVR_AnimeEpisode> episodesToUpdate = new List <SVR_AnimeEpisode>(); List <SVR_AnimeSeries> seriesToUpdate = new List <SVR_AnimeSeries>(); SVR_VideoLocal v = VideoLocal; List <DuplicateFile> dupFiles = RepoFactory.DuplicateFile.GetByFilePathAndImportFolder(FilePath, ImportFolderID); using (var session = DatabaseFactory.SessionFactory.OpenSession()) { if (v.Places.Count <= 1) { episodesToUpdate.AddRange(v.GetAnimeEpisodes()); seriesToUpdate.AddRange(v.GetAnimeEpisodes().Select(a => a.GetAnimeSeries())); using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); RepoFactory.VideoLocal.DeleteWithOpenTransaction(session, v); dupFiles?.ForEach(a => RepoFactory.DuplicateFile.DeleteWithOpenTransaction(session, a)); transaction.Commit(); } CommandRequest_DeleteFileFromMyList cmdDel = new CommandRequest_DeleteFileFromMyList(v.Hash, v.FileSize); cmdDel.Save(); } else { using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); dupFiles.ForEach(a => RepoFactory.DuplicateFile.DeleteWithOpenTransaction(session, a)); transaction.Commit(); } } } episodesToUpdate = episodesToUpdate.DistinctBy(a => a.AnimeEpisodeID).ToList(); foreach (SVR_AnimeEpisode ep in episodesToUpdate) { try { RepoFactory.AnimeEpisode.Save(ep); } catch (Exception ex) { LogManager.GetCurrentClassLogger().Error(ex, ex.ToString()); } } seriesToUpdate = seriesToUpdate.DistinctBy(a => a.AnimeSeriesID).ToList(); foreach (SVR_AnimeSeries ser in seriesToUpdate) { ser.QueueUpdateStats(); } }
public void RemoveRecordWithOpenTransaction(ISession session, ICollection <SVR_AnimeEpisode> episodesToUpdate, ICollection <SVR_AnimeSeries> seriesToUpdate) { logger.Info("Removing VideoLocal_Place recoord for: {0}", FullServerPath ?? VideoLocal_Place_ID.ToString()); SVR_VideoLocal v = VideoLocal; List <DuplicateFile> dupFiles = RepoFactory.DuplicateFile.GetByFilePathAndImportFolder(FilePath, ImportFolderID); if (v?.Places?.Count <= 1) { List <SVR_AnimeEpisode> eps = v?.GetAnimeEpisodes()?.Where(a => a != null).ToList(); eps?.ForEach(episodesToUpdate.Add); eps?.Select(a => a.GetAnimeSeries()).ToList().ForEach(seriesToUpdate.Add); using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); RepoFactory.VideoLocal.DeleteWithOpenTransaction(session, v); dupFiles.ForEach(a => RepoFactory.DuplicateFile.DeleteWithOpenTransaction(session, a)); transaction.Commit(); } CommandRequest_DeleteFileFromMyList cmdDel = new CommandRequest_DeleteFileFromMyList(v.Hash, v.FileSize); cmdDel.Save(); } else { using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); dupFiles.ForEach(a => RepoFactory.DuplicateFile.DeleteWithOpenTransaction(session, a)); transaction.Commit(); } } }
public void RemoveRecordWithOpenTransaction(ISession session, ICollection <SVR_AnimeEpisode> episodesToUpdate, ICollection <SVR_AnimeSeries> seriesToUpdate) { logger.Info("RemoveRecordsWithoutPhysicalFiles : {0}", FullServerPath); SVR_VideoLocal v = VideoLocal; List <SVR_AnimeEpisode> eps = v?.GetAnimeEpisodes()?.Where(a => a != null).ToList(); eps?.ForEach(a => episodesToUpdate.Add(a)); eps?.Select(a => a.GetAnimeSeries()).ToList().ForEach(a => seriesToUpdate.Add(a)); if (v?.Places?.Count <= 1) { using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); RepoFactory.VideoLocal.DeleteWithOpenTransaction(session, v); transaction.Commit(); } CommandRequest_DeleteFileFromMyList cmdDel = new CommandRequest_DeleteFileFromMyList(v.Hash, v.FileSize); cmdDel.Save(); } else { using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); transaction.Commit(); } } }
public void RemoveRecord(bool updateMyListStatus = true) { logger.Info("Removing VideoLocal_Place record for: {0}", FullServerPath ?? VideoLocal_Place_ID.ToString()); List <SVR_AnimeSeries> seriesToUpdate = new List <SVR_AnimeSeries>(); SVR_VideoLocal v = VideoLocal; List <DuplicateFile> dupFiles = null; if (!string.IsNullOrEmpty(FilePath)) { dupFiles = RepoFactory.DuplicateFile.GetByFilePathAndImportFolder(FilePath, ImportFolderID); } using (var session = DatabaseFactory.SessionFactory.OpenSession()) { if (v?.Places?.Count <= 1) { if (updateMyListStatus) { CommandRequest_DeleteFileFromMyList cmdDel = new CommandRequest_DeleteFileFromMyList(v.MyListID); cmdDel.Save(); } using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); seriesToUpdate.AddRange(v.GetAnimeEpisodes().DistinctBy(a => a.AnimeSeriesID) .Select(a => a.GetAnimeSeries())); RepoFactory.VideoLocal.DeleteWithOpenTransaction(session, v); dupFiles?.ForEach(a => RepoFactory.DuplicateFile.DeleteWithOpenTransaction(session, a)); transaction.Commit(); } } else { using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); dupFiles?.ForEach(a => RepoFactory.DuplicateFile.DeleteWithOpenTransaction(session, a)); transaction.Commit(); } } } foreach (SVR_AnimeSeries ser in seriesToUpdate) { ser?.QueueUpdateStats(); } }
public void RemoveRecordWithOpenTransaction(ISession session, ICollection <SVR_AnimeSeries> seriesToUpdate, bool updateMyListStatus = true, bool removeDuplicateFileEntries = true) { logger.Info("Removing VideoLocal_Place record for: {0}", FullServerPath ?? VideoLocal_Place_ID.ToString()); SVR_VideoLocal v = VideoLocal; List <DuplicateFile> dupFiles = null; if (!string.IsNullOrEmpty(FilePath) && removeDuplicateFileEntries) { dupFiles = RepoFactory.DuplicateFile.GetByFilePathAndImportFolder(FilePath, ImportFolderID); } if (v?.Places?.Count <= 1) { if (updateMyListStatus) { CommandRequest_DeleteFileFromMyList cmdDel = new CommandRequest_DeleteFileFromMyList(v.MyListID); cmdDel.Save(); } List <SVR_AnimeEpisode> eps = v?.GetAnimeEpisodes()?.Where(a => a != null).ToList(); eps?.DistinctBy(a => a.AnimeSeriesID).Select(a => a.GetAnimeSeries()).ToList().ForEach(seriesToUpdate.Add); using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); RepoFactory.VideoLocal.DeleteWithOpenTransaction(session, v); dupFiles?.ForEach(a => RepoFactory.DuplicateFile.DeleteWithOpenTransaction(session, a)); transaction.Commit(); } } else { using (var transaction = session.BeginTransaction()) { RepoFactory.VideoLocalPlace.DeleteWithOpenTransaction(session, this); dupFiles?.ForEach(a => RepoFactory.DuplicateFile.DeleteWithOpenTransaction(session, a)); transaction.Commit(); } } }