public async Task RelayCollectionChangeAsync(ICollectionChangeBundle <ContentType, OriginContentType> originBundle) { var convertedApplyingBundle = createApplyingCollectionChangeConversionBundle(originBundle); synchronizer.ApplyCollectionChangeBundle(convertedApplyingBundle); var convertedAppliedBundle = synchronizer.GetAppliedCollectionChangeBundle(convertedApplyingBundle); var convertedChangeAppliedEventSequence = new AsyncEventSequence(); var convertedChangeAppliedArgs = new CollectionChangeAppliedEventArgs <ItemType, ContentType>(convertedAppliedBundle, convertedChangeAppliedEventSequence); synchronizer.OnCollectionChangeApplied(convertedChangeAppliedArgs); await convertedChangeAppliedEventSequence.FinishDependenciesAsync(); var conversionBundles = new ConversionCollectionChangeBundles(convertedAppliedBundle, originBundle); var changeConversionAppliedEventSequence = new AsyncEventSequence(); var changeConversionAppliedArgs = CollectionChangeConversionAppliedEventArgs <ItemType, ContentType, OriginContentType> .CreateAsynchronous(conversionBundles, changeConversionAppliedEventSequence); OnCollectionChangeConversionApplied(changeConversionAppliedArgs); await convertedChangeAppliedEventSequence.FinishDependenciesAsync(); }
public CollectionChangeAppliedEventArgs(ICollectionChangeBundle <ItemType, ContentType> bundle, AsyncEventSequence eventSequence) { this.bundle = bundle ?? throw new ArgumentNullException(nameof(bundle)); AsyncEventSequence = eventSequence ?? throw new ArgumentNullException(nameof(eventSequence)); }
public ConversionCollectionChangeBundles(ICollectionChangeBundle <ItemType, ContentType> convertedBundle, ICollectionChangeBundle <ContentType, OriginContentType> originBundle) { ConvertedBundle = convertedBundle; OriginBundle = originBundle; }
public void RelayCollectionChange(ICollectionChangeBundle <ContentType, OriginContentType> originBundle) => AsyncHelper.RunSynchronous(() => RelayCollectionChangeAsync(originBundle));
private ApplyingCollectionChangeBundle createApplyingCollectionChangeConversionBundle(ICollectionChangeBundle <ContentType, OriginContentType> originBundle) { var originContentContentChange = originBundle.ItemItemChange; var convertedItemContentChange = synchronizer.CreateItemContentCollectionChange(originContentContentChange); return(new ApplyingCollectionChangeBundle(convertedItemContentChange, originContentContentChange)); }
private void applyCollectionChange(ICollectionChange <ContentType, ContentType> contentContentChange, out ICollectionChangeBundle <ItemType, ContentType> appliedBundle) { var itemContentChange = CreateItemContentCollectionChange(contentContentChange); var applyingBundle = new ApplyingCollectionChangeBundle(itemContentChange, contentContentChange); ApplyCollectionChangeBundle(applyingBundle); appliedBundle = GetAppliedCollectionChangeBundle(applyingBundle); }