private SynchronizedEditableView(IList <T> source, CollectionSynchronizer <T> tracker, bool leaveOpen) : base(tracker) { Ensure.NotNull(source, nameof(source)); this.leaveOpen = leaveOpen; this.Source = source; this.Tracker = tracker; }
public CollectionSynchronizerTests() { _synchronizer = new CollectionSynchronizer <MyClass, MyClass> { Compare = (x, y) => x.Id == y.Id, Add = (x) => _destinationList.Add(x), Remove = (x) => _destinationList.Remove(x), Update = (x, y) => y.Name = x.Name, }; }
public void RefreshNulls() { var source = new[] { 1, 2, 3 }; var synchronizer = new CollectionSynchronizer <int>(new int[0]); var current = synchronizer.Current; synchronizer.Refresh(this, source, null, null, null, null); CollectionAssert.AreEqual(source, synchronizer.Current); Assert.AreSame(current, synchronizer.Current); }
public void RefreshSignals() { var source = new ObservableCollection <int>(); var synchronizer = new CollectionSynchronizer <int>(source); using var expected = source.SubscribeAll(); using var actual = this.SubscribeAll(); source.Add(1); synchronizer.Refresh(source, null, this.OnPropertyChanged, this.OnCollectionChanged); CollectionAssert.AreEqual(source, synchronizer); CollectionAssert.AreEqual(expected, actual, EventArgsComparer.Default); }
public async Task Handle(MetricQueryRequest <IndexCountWidget> request, CancellationToken cancellationToken) { var indexCountWidget = request.DataContext; var client = elasticsearchHelper.GetElasticClient(indexCountWidget); var indexCountResponse = await client.IndexListAsync(cancellationToken); if (indexCountResponse.IsValid) { request.DataContext.Value = indexCountResponse.Indices.Length; if (uiAction != null) //uiAction is null on unit tests... { CollectionSynchronizer <IndexEntry, Item> synchronizer = null; switch (indexCountWidget.IndexDetails) { case IndexDetail.None: synchronizer = GetNoneSynchronizer(request); break; case IndexDetail.Health: synchronizer = GetHealthSynchronizer(request); break; case IndexDetail.DocumentsCount: synchronizer = GetDocumentsCountSynchronizer(request); break; case IndexDetail.DeletedDocumentsCount: synchronizer = GetDeletedDocumentsCountSynchronizer(request); break; case IndexDetail.TotalStoreSize: synchronizer = GetTotalStoreSizeSynchronizer(request); break; case IndexDetail.PrimaryStoreSize: synchronizer = GetPrimaryStoreSizeSynchronizer(request); break; } uiAction.Invoke(() => synchronizer.Synchronize(indexCountResponse.Indices, request.DataContext.Items)); } request.DataContext.State = State.Ok; } else { indexCountWidget.State = State.Invalid; } }
public void RefreshSignalsWithScheduler() { var source = new ObservableCollection <int>(); var synchronizer = new CollectionSynchronizer <int>(source); var expected = source.SubscribeAll(); var actual = this.SubscribeAll(); source.Add(1); var scheduler = new TestScheduler(); synchronizer.Refresh(this, source, null, scheduler, PropertyChanged, CollectionChanged); CollectionAssert.AreEqual(source, synchronizer.Current); CollectionAssert.IsEmpty(actual.OfType <NotifyCollectionChangedEventArgs>()); scheduler.Start(); CollectionAssert.AreEqual(expected, actual, EventArgsComparer.Default); }
private IOutcome <string> DoExecute() { var unitSync = new UnitSynchronizer(); var unitOutcome = unitSync.Execute(); if (unitOutcome.Failure) { return(Outcomes.Failure <string>() .WithMessage("The swgoh.gg synchronizer failed while trying to retrieve units.") .WithMessagesFrom(unitOutcome)); } var playerSync = new PlayerSynchronizer(); var playerOutcome = playerSync.Execute(); if (playerOutcome.Failure) { return(Outcomes.Failure <string>() .WithMessage("The swgoh.gg synchronizer failed while trying to retrieve players.") .WithMessagesFrom(playerOutcome)); } var collectionSync = new CollectionSynchronizer(); var collectionOutcome = collectionSync.Execute(); if (collectionOutcome.Failure) { return(Outcomes.Failure <string>() .WithMessage("The swgoh.gg synchronizer failed while trying to retrieve collections.") .WithMessagesFrom(collectionOutcome)); } var modSync = new ModSynchronizer(); var modOutcome = modSync.Execute(); if (modOutcome.Failure) { return(Outcomes.Failure <string>() .WithMessage("The swgoh.gg synchronizer failed while trying to retrieve mods.") .WithMessagesFrom(modOutcome)); } return(Outcomes.Success <string>() .WithMessage("Successfully ran the swgoh.gg synchronizer.")); }