Exemplo n.º 1
0
        internal override void RegenerateDb(IProgress <RegenerateProgress> progress)
        {
            List <AniDB_Episode> episodes;

            using (CacheLock.ReaderLock())
            {
                episodes = IsCached ? Cache.Values.Where(episode => episode.EnglishName.Contains('`') || episode.RomajiName.Contains('`')).ToList() : Table.Where((episode => episode.EnglishName.Contains('`') || episode.RomajiName.Contains('`'))).ToList();
            }
            using (IAtomic <List <AniDB_Episode>, object> update = BeginAtomicBatchUpdate(episodes))
            {
                RegenerateProgress regen = new RegenerateProgress();
                regen.Title = "Fixing Episode Titles";
                regen.Step  = 0;
                regen.Total = update.Updatable.Count;
                foreach (AniDB_Episode episode in update.Updatable)
                {
                    episode.EnglishName = episode.EnglishName.Replace('`', '\'');
                    episode.RomajiName  = episode.RomajiName.Replace('`', '\'');
                    regen.Step++;
                    progress.Report(regen);
                }
                update.Commit();
                regen.Step = regen.Total;
                progress.Report(regen);
            }
        }
Exemplo n.º 2
0
 internal override void RegenerateDb(IProgress<RegenerateProgress> progress)
 {
     const int batchSize = 50;
     List<SVR_AniDB_Anime> animeToUpdate = Where(a => a.ContractVersion < SVR_AniDB_Anime.CONTRACT_VERSION).ToList();
     int max = animeToUpdate.Count;
     int count = 0;
     RegenerateProgress prog = new RegenerateProgress();
     prog.Title = "Regenerating AniDB_Anime Contracts";
     prog.Step = 0;
     prog.Total = max;
     if (max <= 0) return;
     progress.Report(prog);
     foreach (SVR_AniDB_Anime[] animeBatch in animeToUpdate.Batch(batchSize))
     {
         using (IAtomic<List<SVR_AniDB_Anime>,object> update = BeginAtomicBatchUpdate(animeBatch))
         {
             SVR_AniDB_Anime.UpdateContractDetailedBatch(update.Updatable);
             foreach (SVR_AniDB_Anime anime in animeBatch)
             {
                 anime.Description = anime.Description?.Replace("`", "\'") ?? string.Empty;
                 anime.MainTitle = anime.MainTitle.Replace("`", "\'");
                 anime.AllTags = anime.AllTags.Replace("`", "\'");
                 anime.AllTitles = anime.AllTitles.Replace("`", "\'");
                 count++;
             }
         }
         prog.Step = count;
         progress.Report(prog);                    
     }
     prog.Step = max;
     progress.Report(prog);
 }
Exemplo n.º 3
0
        internal override void RegenerateDb(IProgress <RegenerateProgress> progress, int batchSize)
        {
            //TODO Do we still need to run this every time?
            List <AniDB_Anime_Title> titles = GetTitleContains("`");

            if (titles.Count == 0)
            {
                return;
            }
            BatchAction(titles, batchSize, (update) =>
            {
                RegenerateProgress regen = new RegenerateProgress();
                regen.Title = "Fixing Anime Titles";
                regen.Step  = 0;
                regen.Total = update.Updatable.Count;
                foreach (AniDB_Anime_Title title in update.Updatable)
                {
                    title.Title = title.Title.Replace('`', '\'');
                    regen.Step++;
                    progress.Report(regen);
                }
                update.Commit();
                regen.Step = regen.Total;
                progress.Report(regen);
            });
            using (IAtomic <List <AniDB_Anime_Title>, object> update = BeginAtomicBatchUpdate(titles))
            {
            }
        }
Exemplo n.º 4
0
        internal override void RegenerateDb(IProgress <RegenerateProgress> progress)
        {
            List <AniDB_Tag> tags = Where(tag => (tag.TagDescription?.Contains('`') ?? false) || tag.TagName.Contains('`')).ToList();

            using (IAtomic <List <AniDB_Tag>, object> update = BeginAtomicBatchUpdate(tags))
            {
                RegenerateProgress regen = new RegenerateProgress();
                regen.Title = "Fixing Tag Names";
                regen.Step  = 0;
                regen.Total = update.Updatable.Count;
                foreach (AniDB_Tag tag in update.Updatable)
                {
                    tag.TagDescription = tag.TagDescription?.Replace('`', '\'');
                    tag.TagName        = tag.TagName.Replace('`', '\'');
                    regen.Step++;
                    progress.Report(regen);
                }
                update.Commit();
                regen.Step = regen.Total;
                progress.Report(regen);
            }
        }