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