public void AsReadOnlyThrottledView()
        {
            var source = new ObservableCollection <int>();

            using (source.AsReadOnlyThrottledView(TimeSpan.Zero))
            {
            }

            using (source.AsReadOnlyFilteredView(x => true)
                   .AsReadOnlyThrottledView(TimeSpan.Zero))
            {
            }

            using (source.AsMappingView(x => x.ToString(CultureInfo.InvariantCulture))
                   .AsReadOnlyThrottledView(TimeSpan.Zero))
            {
            }

            var readonlyInts = new ReadOnlyObservableCollection <int>(source);

            using (readonlyInts.AsReadOnlyThrottledView(TimeSpan.Zero))
            {
            }

            using (readonlyInts.AsReadOnlyFilteredView(x => true)
                   .AsReadOnlyThrottledView(TimeSpan.Zero))
            {
            }

            using (readonlyInts.AsMappingView(x => x.ToString(CultureInfo.InvariantCulture))
                   .AsReadOnlyThrottledView(TimeSpan.Zero))
            {
            }
        }
Exemple #2
0
        public void AsReadOnlyFilteredView()
        {
            var ints = new ObservableCollection <int>();

            ints.AsReadOnlyFilteredView(x => true);

            ints.AsMappingView(x => x.ToString())
            .AsReadOnlyFilteredView(x => true);

            ints.AsThrottledView(TimeSpan.Zero)
            .AsReadOnlyFilteredView(x => true);

            var readonlyInts = new ReadOnlyObservableCollection <int>(ints);

            readonlyInts.AsReadOnlyFilteredView(x => true);

            readonlyInts.AsMappingView(x => x.ToString())
            .AsReadOnlyFilteredView(x => true);

            readonlyInts.AsReadOnlyThrottledView(TimeSpan.Zero)
            .AsReadOnlyFilteredView(x => true);

            Enumerable.Range(0, 2)
            .AsReadOnlyFilteredView(x => true, Mock.Of <IObservable <object> >());
        }
 protected AbstractChore(ReadOnlyObservableCollection <Repository> repositories)
 {
     this.mapped = repositories.AsMappingView(
         x => new BatchViewModel(x, this.UpdateTrigger, this.CreateBatch),
         x => x.Dispose());
     this.Tasks = this.mapped.AsReadOnlyFilteredView(
         x => x.Batch != null,
         this.mapped.ObserveItemPropertyChangedSlim(x => x.Batch));
 }
Exemple #4
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="TItem"></typeparam>
        /// <typeparam name="TValue"></typeparam>
        /// <param name="source"></param>
        /// <param name="selector"></param>
        /// <param name="whenEmpty"></param>
        /// <param name="trackItemChanges">If true we subscribe to property changes for each item. This is much slower.</param>
        /// <returns>A tracker with Value synced with source.Max()</returns>
        public static MaxTracker <TValue> TrackMax <TItem, TValue>(this ReadOnlyObservableCollection <TItem> source, Expression <Func <TItem, TValue> > selector, TValue?whenEmpty, bool trackItemChanges)
            where TItem : class, INotifyPropertyChanged
            where TValue : struct, IComparable <TValue>
        {
            var onItemChanged = trackItemChanges
                                    ? source.ObserveItemPropertyChanged(selector, false)
                                    : null;
            var mapped = source.AsMappingView(selector.Compile(), onItemChanged);

            return(new MaxTracker <TValue>(mapped, mapped.ObserveCollectionChangedSlim(false), whenEmpty));
        }
Exemple #5
0
        public void AsReadOnlyFilteredView()
        {
            var source = new ObservableCollection <int>();

            using (source.AsReadOnlyFilteredView(x => true))
            {
            }

            using (source.AsMappingView(x => x.ToString())
                   .AsReadOnlyFilteredView(x => true))
            {
            }

            using (source.AsReadOnlyThrottledView(TimeSpan.Zero)
                   .AsReadOnlyFilteredView(x => true))
            {
            }

            var readonlyInts = new ReadOnlyObservableCollection <int>(source);

            using (readonlyInts.AsReadOnlyFilteredView(x => true))
            {
            }

            using (readonlyInts.AsMappingView(x => x.ToString())
                   .AsReadOnlyFilteredView(x => true))
            {
            }

            using (readonlyInts.AsReadOnlyThrottledView(TimeSpan.Zero)
                   .AsReadOnlyFilteredView(x => true))
            {
            }

            using (Enumerable.Range(0, 2)
                   .AsReadOnlyFilteredView(x => true, Mock.Of <IObservable <object> >()))
            {
            }
        }
Exemple #6
0
        public void AsMappingView()
        {
            var ints = new ObservableCollection <int>();

            ints.AsMappingView(x => x.ToString());

            ints.AsFilteredView(x => true)
            .AsMappingView(x => x.ToString());

            ints.AsThrottledView(TimeSpan.Zero)
            .AsMappingView(x => x.ToString());

            var readonlyInts = new ReadOnlyObservableCollection <int>(ints);

            readonlyInts.AsMappingView(x => x.ToString());

            readonlyInts.AsReadOnlyFilteredView(x => true)
            .AsMappingView(x => x.ToString());

            readonlyInts.AsReadOnlyThrottledView(TimeSpan.Zero)
            .AsMappingView(x => x.ToString());
        }
        public void AsMappingView()
        {
            // just checking that the overloads are right.
            // Will be compiler error if we dumb things.
            var source = new ObservableCollection <int>();

            using (source.AsMappingView(x => x.ToString(CultureInfo.InvariantCulture)))
            {
            }

            using (source.AsReadOnlyFilteredView(x => true)
                   .AsMappingView(x => x.ToString(CultureInfo.InvariantCulture)))
            {
            }

            using (source.AsReadOnlyThrottledView(TimeSpan.Zero)
                   .AsMappingView(x => x.ToString(CultureInfo.InvariantCulture)))
            {
            }

            var readonlyInts = new ReadOnlyObservableCollection <int>(source);

            using (readonlyInts.AsMappingView(x => x.ToString(CultureInfo.InvariantCulture)))
            {
            }

            using (readonlyInts.AsReadOnlyFilteredView(x => true)
                   .AsMappingView(x => x.ToString(CultureInfo.InvariantCulture)))
            {
            }

            using (readonlyInts.AsReadOnlyThrottledView(TimeSpan.Zero)
                   .AsMappingView(x => x.ToString(CultureInfo.InvariantCulture)))
            {
            }
        }