/// <summary> /// Unmarks one or more episodes. /// </summary> /// <param name="showid">The ID of the TV show in the database.</param> /// <param name="episodes">The list of episode ranges. A range consists of two numbers from the same season.</param> public override void UnmarkEpisodes(string showid, IEnumerable <int[]> episodes) { var change = InitChange(showid, ShowInfoChange.ChangeType.UnmarkEpisode, episodes); if (DelayedChanges.Any(x => x.Change == ShowInfoChange.ChangeType.UnmarkEpisode && x.Show == change.Show)) { var prevmark = DelayedChanges.First(x => x.Change == ShowInfoChange.ChangeType.UnmarkEpisode && x.Show == change.Show); if (prevmark.Data is List <int[]> && change.Data is List <int[]> ) { (prevmark.Data as List <int[]>).AddRange(change.Data as List <int[]>); } else { DelayedChanges.Add(change); } } else { DelayedChanges.Add(change); } DelayedChangesTimer.Start(); SaveDelayedChanges(); }
/// <summary> /// Sends the reordered TV show list. /// </summary> public override void ReorderList() { var change = InitChange(null, ShowInfoChange.ChangeType.AddShow, Database.Query("select name from tvshows order by rowid asc").Select(dict => dict["name"]).ToArray()); DelayedChanges.RemoveAll(x => x.Change == ShowInfoChange.ChangeType.ReorderList); DelayedChanges.Add(change); DelayedChangesTimer.Start(); SaveDelayedChanges(); }