public static void Init() { JMMUser.Populate(a => a.JMMUserID); CloudAccount.Populate(a => a.CloudID); ImportFolder.Populate(a => a.ImportFolderID); AniDB_Anime.Populate(a => a.AniDB_AnimeID); AniDB_Episode.Populate(a => a.AniDB_EpisodeID); AniDB_File.Populate(a => a.AniDB_FileID); AniDB_Anime_Title.Populate(a => a.AniDB_Anime_TitleID); AniDB_Anime_Tag.Populate(a => a.AniDB_Anime_TagID); AniDB_Tag.Populate(a => a.AniDB_TagID); CustomTag.Populate(a => a.CustomTagID); CrossRef_CustomTag.Populate(a => a.CrossRef_CustomTagID); CrossRef_File_Episode.Populate(a => a.CrossRef_File_EpisodeID); VideoLocalPlace.Populate(a => a.VideoLocal_Place_ID); VideoLocal.Populate(a => a.VideoLocalID); VideoLocalUser.Populate(a => a.VideoLocal_UserID); GroupFilter.Populate(a => a.GroupFilterID); AnimeEpisode.Populate(a => a.AnimeEpisodeID); AnimeEpisode_User.Populate(a => a.AnimeEpisode_UserID); AnimeSeries.Populate(a => a.AnimeSeriesID); AnimeSeries_User.Populate(a => a.AnimeSeries_UserID); AnimeGroup.Populate(a => a.AnimeGroupID); AnimeGroup_User.Populate(a => a.AnimeGroup_UserID); GroupFilter.PostProcess(); CleanUpMemory(); }
public void Save(AnimeSeries_User obj) { lock (obj) { UpdatePlexKodiContracts(obj); AnimeSeries_User old; using (var session = JMMService.SessionFactory.OpenSession()) { old = session.Get <AnimeSeries_User>(obj.AnimeSeries_UserID); } using (var session = JMMService.SessionFactory.OpenSession()) { HashSet <GroupFilterConditionType> types = AnimeSeries_User.GetConditionTypesChanged(old, obj); // populate the database using (var transaction = session.BeginTransaction()) { session.SaveOrUpdate(obj); transaction.Commit(); } Cache.Update(obj); if (!Changes.ContainsKey(obj.JMMUserID)) { Changes[obj.JMMUserID] = new ChangeTracker <int>(); } Changes[obj.JMMUserID].AddOrUpdate(obj.AnimeSeriesID); obj.UpdateGroupFilter(types); } } //logger.Trace("Updating group stats by series from AnimeSeries_UserRepository.Save: {0}", obj.AnimeSeriesID); //StatsCache.Instance.UpdateUsingSeries(obj.AnimeSeriesID); }
public static void Init() { JMMUser.Populate(); CloudAccount.Populate(); ImportFolder.Populate(); AniDB_Anime.Populate(); AniDB_Episode.Populate(); AniDB_File.Populate(); AniDB_Anime_Title.Populate(); AniDB_Anime_Tag.Populate(); AniDB_Tag.Populate(); CustomTag.Populate(); CrossRef_CustomTag.Populate(); CrossRef_File_Episode.Populate(); VideoLocalPlace.Populate(); VideoLocal.Populate(); VideoLocalUser.Populate(); GroupFilter.Populate(); AnimeEpisode.Populate(); AnimeEpisode_User.Populate(); AnimeSeries.Populate(); AnimeSeries_User.Populate(); AnimeGroup.Populate(); AnimeGroup_User.Populate(); // Update Contracts if necessary try { JMMUser.RegenerateDb(); CloudAccount.RegenerateDb(); ImportFolder.RegenerateDb(); AniDB_Anime.RegenerateDb(); AniDB_Episode.RegenerateDb(); AniDB_File.RegenerateDb(); AniDB_Anime_Title.RegenerateDb(); AniDB_Anime_Tag.RegenerateDb(); AniDB_Tag.RegenerateDb(); CustomTag.RegenerateDb(); CrossRef_CustomTag.RegenerateDb(); CrossRef_File_Episode.RegenerateDb(); VideoLocalPlace.RegenerateDb(); VideoLocal.RegenerateDb(); VideoLocalUser.RegenerateDb(); AnimeEpisode.RegenerateDb(); AnimeEpisode_User.RegenerateDb(); AnimeSeries.RegenerateDb(); AnimeSeries_User.RegenerateDb(); AnimeGroup.RegenerateDb(); AnimeGroup_User.RegenerateDb(); GroupFilter.RegenerateDb(); GroupFilter.PostProcess(); } catch (Exception e) { LogManager.GetCurrentClassLogger().Error(e, "There was an error starting the Database Factory"); } CleanUpMemory(); }
public AnimeSeries_User GetByUserAndSeriesID(ISession session, int userid, int seriesid) { AnimeSeries_User cr = session .CreateCriteria(typeof(AnimeSeries_User)) .Add(Restrictions.Eq("JMMUserID", userid)) .Add(Restrictions.Eq("AnimeSeriesID", seriesid)) .UniqueResult <AnimeSeries_User>(); return(cr); }
public static void CleanUpMemory() { AniDB_Anime.GetAll().ForEach(a => a.CollectContractMemory()); VideoLocal.GetAll().ForEach(a => a.CollectContractMemory()); AnimeEpisode.GetAll().ForEach(a => a.CollectContractMemory()); AnimeEpisode_User.GetAll().ForEach(a => a.CollectContractMemory()); AnimeSeries.GetAll().ForEach(a => a.CollectContractMemory()); AnimeSeries_User.GetAll().ForEach(a => a.CollectContractMemory()); AnimeGroup.GetAll().ForEach(a => a.CollectContractMemory()); AnimeGroup_User.GetAll().ForEach(a => a.CollectContractMemory()); GC.Collect(); }
public static void Init() { JMMUser.Populate(); CloudAccount.Populate(); ImportFolder.Populate(); AniDB_Anime.Populate(); AniDB_Episode.Populate(); AniDB_File.Populate(); AniDB_Anime_Title.Populate(); AniDB_Anime_Tag.Populate(); AniDB_Tag.Populate(); CustomTag.Populate(); CrossRef_CustomTag.Populate(); CrossRef_File_Episode.Populate(); VideoLocalPlace.Populate(); VideoLocal.Populate(); VideoLocalUser.Populate(); GroupFilter.Populate(); AnimeEpisode.Populate(); AnimeEpisode_User.Populate(); AnimeSeries.Populate(); AnimeSeries_User.Populate(); AnimeGroup.Populate(); AnimeGroup_User.Populate(); // Update Contracts if necessary JMMUser.RegenerateDb(); CloudAccount.RegenerateDb(); ImportFolder.RegenerateDb(); AniDB_Anime.RegenerateDb(); AniDB_Episode.RegenerateDb(); AniDB_File.RegenerateDb(); AniDB_Anime_Title.RegenerateDb(); AniDB_Anime_Tag.RegenerateDb(); AniDB_Tag.RegenerateDb(); CustomTag.RegenerateDb(); CrossRef_CustomTag.RegenerateDb(); CrossRef_File_Episode.RegenerateDb(); VideoLocalPlace.RegenerateDb(); VideoLocal.RegenerateDb(); VideoLocalUser.RegenerateDb(); AnimeEpisode.RegenerateDb(); AnimeEpisode_User.RegenerateDb(); AnimeSeries.RegenerateDb(); AnimeSeries_User.RegenerateDb(); AnimeGroup.RegenerateDb(); AnimeGroup_User.RegenerateDb(); GroupFilter.RegenerateDb(); GroupFilter.PostProcess(); CleanUpMemory(); }
public static void CleanUpMemory() { AniDB_Anime.GetAll().ForEach(a => a.CollectContractMemory()); VideoLocal.GetAll().ForEach(a => a.CollectContractMemory()); AnimeEpisode_User.GetAll().ForEach(a => a.CollectContractMemory()); AnimeSeries.GetAll().ForEach(a => a.CollectContractMemory()); AnimeSeries_User.GetAll().ForEach(a => a.CollectContractMemory()); AnimeGroup.GetAll().ForEach(a => a.CollectContractMemory()); AnimeGroup_User.GetAll().ForEach(a => a.CollectContractMemory()); GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce; GC.Collect(); }
private void UpdatePlexKodiContracts(AnimeSeries_User ugrp) { using (var session = JMMService.SessionFactory.OpenSession()) { AnimeSeriesRepository repo = new AnimeSeriesRepository(); AnimeSeries ser = repo.GetByID(ugrp.AnimeSeriesID); Contract_AnimeSeries con = ser?.GetUserContract(ugrp.JMMUserID); if (con == null) { return; } ugrp.PlexContract = Helper.GenerateFromSeries(con, ser, ser.GetAnime(session), ugrp.JMMUserID); } }
public static CL_AnimeSeries_User ToClient(this AnimeSeries_User s) { return(new CL_AnimeSeries_User { AnimeSeries_UserID = s.AnimeSeries_UserID, JMMUserID = s.JMMUserID, AnimeSeriesID = s.AnimeSeriesID, UnwatchedEpisodeCount = s.UnwatchedEpisodeCount, WatchedEpisodeCount = s.WatchedEpisodeCount, WatchedDate = s.WatchedDate, PlayedCount = s.PlayedCount, WatchedCount = s.WatchedCount, StoppedCount = s.StoppedCount }); }
public void Save(AnimeSeries_User obj) { using (var session = JMMService.SessionFactory.OpenSession()) { // populate the database using (var transaction = session.BeginTransaction()) { session.SaveOrUpdate(obj); transaction.Commit(); } } //logger.Trace("Updating group stats by series from AnimeSeries_UserRepository.Save: {0}", obj.AnimeSeriesID); //StatsCache.Instance.UpdateUsingSeries(obj.AnimeSeriesID); }
public void Delete(int id) { using (var session = JMMService.SessionFactory.OpenSession()) { // populate the database using (var transaction = session.BeginTransaction()) { AnimeSeries_User cr = GetByID(id); if (cr != null) { Cache.Remove(cr); if (!Changes.ContainsKey(cr.JMMUserID)) { Changes[cr.JMMUserID] = new ChangeTracker <int>(); } Changes[cr.JMMUserID].Remove(cr.AnimeSeriesID); session.Delete(cr); transaction.Commit(); cr.DeleteFromFilters(); } } } }
public void Delete(int id) { AnimeSeries_User cr = null; using (var session = JMMService.SessionFactory.OpenSession()) { // populate the database using (var transaction = session.BeginTransaction()) { cr = GetByID(id); if (cr != null) { session.Delete(cr); transaction.Commit(); } } } //if (cr != null) //{ // logger.Trace("Updating group stats by series from AnimeSeries_UserRepository.Delete: {0}", cr.AnimeSeriesID); // StatsCache.Instance.UpdateUsingSeries(cr.AnimeSeriesID); //} }