Esempio n. 1
0
        /// <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();
        }
Esempio n. 2
0
        /// <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();
        }