Exemple #1
0
        private int CompareEntries(MovieSeriesEntry left, MovieSeriesEntry right)
        {
            if (left.ParentSeries.IsStrictDescendantOf(right.ParentSeries))
            {
                return(left.ParentSeries.GetAllAncestors()
                       .Where(a => a.Entry != null)
                       .First(a => a.Entry !.ParentSeriesId == right.ParentSeriesId)
                       .Entry !
                       .SequenceNumber
                       .CompareTo(right.SequenceNumber));
            }

            if (right.ParentSeries.IsStrictDescendantOf(left.ParentSeries))
            {
                return(left.SequenceNumber.CompareTo(
                           right.ParentSeries.GetAllAncestors()
                           .Where(a => a.Entry != null)
                           .First(a => a.Entry !.ParentSeriesId == left.ParentSeriesId)
                           .Entry !
                           .SequenceNumber));
            }

            return(this.Compare(
                       new MovieSeriesListItem(left.ParentSeries),
                       new MovieSeriesListItem(right.ParentSeries)));
        }
Exemple #2
0
        private MovieSeriesEntry OnDetachEntry(MovieSeriesEntry entry)
        {
            this.DecrementNumbers(entry.SequenceNumber);

            this.Entries
            .Where(e => e.SequenceNumber >= entry.SequenceNumber)
            .ForEach(e => e.SequenceNumber--);

            this.entriesSource.Remove(entry);

            return(entry);
        }
Exemple #3
0
        private MovieSeriesEntryViewModel CreateEntryViewModel(MovieSeriesEntry entry)
        {
            var viewModel    = new MovieSeriesEntryViewModel(entry, this, this.ResourceManager, this.Scheduler);
            var subsciptions = new CompositeDisposable();

            viewModel.Select
            .Select(_ => viewModel)
            .InvokeCommand(this.SelectEntry)
            .DisposeWith(subsciptions);

            viewModel.MoveUp
            .Select(_ => viewModel)
            .Subscribe(this.MoveEntryUp)
            .DisposeWith(subsciptions);

            viewModel.MoveDown
            .Select(_ => viewModel)
            .Subscribe(this.MoveEntryDown)
            .DisposeWith(subsciptions);

            viewModel.HideDisplayNumber
            .Select(_ => viewModel)
            .Subscribe(this.HideDisplayNumber)
            .DisposeWith(subsciptions);

            viewModel.ShowDisplayNumber
            .Select(_ => viewModel)
            .Subscribe(this.ShowDisplayNumber)
            .DisposeWith(subsciptions);

            viewModel.Delete
            .WhereNotNull()
            .InvokeCommand(this.DetachEntry)
            .DisposeWith(subsciptions);

            viewModel.Delete
            .WhereNotNull()
            .Discard()
            .Subscribe(subsciptions.Dispose)
            .DisposeWith(subsciptions);

            return(viewModel);
        }
Exemple #4
0
 public ListItem EntryToListItem(MovieSeriesEntry entry)
 => entry.Movie != null
         ? new MovieListItem(entry.Movie)
         : entry.Series != null
             ? (ListItem) new SeriesListItem(entry.Series)
             : new MovieSeriesListItem(entry.MovieSeries !);