public static List <WebCache_CrossRef_AniDB_Provider> BestProvider(this List <WebCache_CrossRef_AniDB_Provider> list, bool prefer_user = false) { if (list == null || list.Count == 0) { return(new List <WebCache_CrossRef_AniDB_Provider>()); } if (prefer_user) { List <WebCache_CrossRef_AniDB_Provider> bst = list.Where(a => a.Type == WebCache_ReliabilityType.User).ToList(); if (bst != null) { return(bst); } } WebCache_CrossRef_AniDB_Provider best = list.FirstOrDefault(a => a.Type == WebCache_ReliabilityType.AdminVerified); if (best == null) { best = list.FirstOrDefault(a => a.Type == WebCache_ReliabilityType.ModeratorVerified); } if (best == null) { best = list.FirstOrDefault(a => a.Type == WebCache_ReliabilityType.User); } if (best == null) { best = list.OrderByDescending(a => a.PopularityCount).First(); } return(list.Where(a => a.AniDBUserId == best.AniDBUserId).ToList()); }
public bool AddCrossRef_AniDB_Provider(WebCache_CrossRef_AniDB_Provider cross, bool approve) { return(WrapAuthentication((token) => { cclient.AddProvider(cross, token, approve); })); }
public static WebCache_CrossRef_AniDB_Provider ToWebCache(this SVR_CrossRef_AniDB_Provider pr) { WebCache_CrossRef_AniDB_Provider w = new WebCache_CrossRef_AniDB_Provider(); w.CrossRefID = pr.CrossRefID; w.AnimeID = pr.AnimeID; w.CrossRefSource = pr.CrossRefSource; w.CrossRefType = pr.CrossRefType; w.EpisodesOverrideData = pr.EpisodesOverrideData; w.IsAdditive = pr.IsAdditive; return(w); }
public static void LinkAniDBTvDBFromWebCache(WebCache_CrossRef_AniDB_Provider cache) { // check if we have this information locally // if not download it now int tvDBID = int.Parse(cache.CrossRefID); TvDB_Series tvSeries = Repo.Instance.TvDB_Series.GetByTvDBID(tvDBID); if (tvSeries == null) { tvSeries = Task.Run(async() => await GetSeriesInfoOnlineAsync(tvDBID, true)).GetAwaiter().GetResult(); } using (var upd = Repo.Instance.CrossRef_AniDB_Provider.BeginAddOrUpdate(() => Repo.Instance.CrossRef_AniDB_Provider.GetByAnimeIdAndProvider(CrossRefType.TvDB, cache.AnimeID, cache.CrossRefID))) { upd.Entity.CrossRefSource = CrossRefSource.WebCache; upd.Entity.AnimeID = cache.AnimeID; upd.Entity.CrossRefID = cache.CrossRefID; upd.Entity.CrossRefType = CrossRefType.TvDB; upd.Entity.EpisodesOverrideData = cache.EpisodesOverrideData; upd.Entity.IsAdditive = cache.IsAdditive; upd.Commit(); } }