public void New() { var newPeople = Enumerable.Range(1, 15).Select(i => new Person("Name" + i, i)).ToArray(); _cache.EditDiff(newPeople, Person.NameAgeGenderComparer); Assert.AreEqual(15, _cache.Count); CollectionAssert.AreEquivalent(newPeople, _cache.Items); var lastChange = _result.Messages.Last(); Assert.AreEqual(5, lastChange.Adds); }
public void New() { var newPeople = Enumerable.Range(1, 15).Select(i => new Person("Name" + i, i)).ToArray(); _cache.EditDiff(newPeople, Person.NameAgeGenderComparer); _cache.Count.Should().Be(15); _cache.Items.ShouldAllBeEquivalentTo(newPeople); var lastChange = _result.Messages.Last(); lastChange.Adds.Should().Be(5); }
public void Amends() { var newList = Enumerable.Range(5, 3).Select(i => new Person("Name" + i, i + 10)).ToArray(); _cache.EditDiff(newList, Person.NameAgeGenderComparer); _cache.Count.Should().Be(3); var lastChange = _result.Messages.Last(); lastChange.Adds.Should().Be(3); lastChange.Removes.Should().Be(10); _cache.Items.Should().BeEquivalentTo(newList); }
public ListViewModel() { var navigationSortExpressionComparer = SortExpressionComparer <ListItemDataModel> .Ascending(p => p.Group) .ThenByAscending(p => p.Order); // this.WhenActivated(disposable => // { var obs = _items .Connect() .Sort(navigationSortExpressionComparer) .ObserveOn(RxApp.MainThreadScheduler) .Transform( model => new ListItemViewModel(model)) .Publish(); ListCollection = obs; SelectedItems = obs.Filter(x => x.IsSelected); obs.Connect(); _items.AddRange(GetFirstDataSet()); Task.Run(() => { var firstList = GetFirstDataSet(); _items.EditDiff(firstList); Thread.Sleep(5000); var nextList = GetSecondList(); nextList.AddRange(GetFirstDataSet()); _items.EditDiff(nextList); }).ConfigureAwait(false); // }); }
public IDisposable Switch(bool useGroup) { SourceList.Clear(); return(Choose() .Subscribe(a => { SourceList.EditDiff(a); })); IObservable <IEnumerable <object> > Choose() { return(useGroup == false ? ungrouped .Connect() .ToCollection() : grouped .Connect() .ToCollection()); } }