Пример #1
0
        private void ShowDisplayNumber(MovieSeriesEntryViewModel vm)
        {
            vm.DisplayNumber = (this.Entries
                                .Where(entry => entry.SequenceNumber < vm.SequenceNumber && entry.DisplayNumber.HasValue)
                                .Select(entry => entry.DisplayNumber)
                                .Max() ?? (this.GetFirstDisplayNumber() - 1)) + 1;

            this.IncrementNumbers(vm.SequenceNumber);
        }
Пример #2
0
        private void SwapEntryNumbers(MovieSeriesEntryViewModel first, MovieSeriesEntryViewModel second)
        {
            first.SequenceNumber++;
            second.SequenceNumber--;

            if (first.DisplayNumber.HasValue)
            {
                first.DisplayNumber++;
            }

            if (second.DisplayNumber.HasValue)
            {
                second.DisplayNumber--;
            }
        }
Пример #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);
        }
Пример #4
0
 private void HideDisplayNumber(MovieSeriesEntryViewModel vm)
 {
     vm.DisplayNumber = null;
     this.DecrementNumbers(vm.SequenceNumber);
 }
Пример #5
0
 private void MoveEntryDown(MovieSeriesEntryViewModel vm)
 => this.SwapEntryNumbers(vm, this.Entries.First(e => e.SequenceNumber == vm.SequenceNumber + 1));
Пример #6
0
 private void MoveEntryUp(MovieSeriesEntryViewModel vm)
 => this.SwapEntryNumbers(this.Entries.First(e => e.SequenceNumber == vm.SequenceNumber - 1), vm);