Open crosscourt opened 6 years ago
From what I can understand you have a source collection with all the items and you want to filter the items into two separate caches?
In that case you can try something like this:
var sourceCacheA = tagSourceCache
.Connect()
.Filter(p => p.Title == "tagA")
.AsObservableCache();
var sourceCacheB = tagSourceCache
.Connect()
.Filter(p => p.Title == "tagB")
.AsObservableCache();
sorry for my poor description. I have 2 separate caches (Items, Tags).
Each tag has a condition, like "Item.Quantity > 10". So any changes to the Item or Tag Condition will need re-evaluation of everything.
Maybe the ForEachChange() operator can come to the rescue
Scenario: Tagging Items 2 caches: SourceCache- , SourceCache
When item changes, it needs to go thru the list of tags to determine which one applies to it.
Similarly, when tag changes, retagging needs to occur.
First not so reactive attempt:
var disposable = tagsCache.Connect().Flatten().Subscribe(change => { Tag tag = change.Current;
});
var disposable2 = _itemCache.Connect().WhereReasonsAre(ChangeReason.Add, ChangeReason.Update).Flatten().Subscribe(change => { Item item = change.Current;
});