public MockReliableStateManager() { // Initialze _store to a TransactedConcurrentDictionary that fires the StateManagerChanged event in the OnDictionaryChanged callback. _store = new TransactedConcurrentDictionary <Uri, IReliableState>( new Uri("fabric://state", UriKind.Absolute), (c) => { if (StateManagerChanged != null) { NotifyStateManagerSingleEntityChangedEventArgs changeEvent; switch (c.ChangeType) { case ChangeType.Added: changeEvent = new NotifyStateManagerSingleEntityChangedEventArgs(c.Transaction, c.Added, NotifyStateManagerChangedAction.Add); break; case ChangeType.Removed: changeEvent = new NotifyStateManagerSingleEntityChangedEventArgs(c.Transaction, c.Removed, NotifyStateManagerChangedAction.Remove); break; default: return(false); } StateManagerChanged.Invoke(this, changeEvent); } return(true); } ); }
private void StateManager_StateManagerChanged(object sender, NotifyStateManagerChangedEventArgs e) { if (e.Action == NotifyStateManagerChangedAction.Add) { NotifyStateManagerSingleEntityChangedEventArgs args = e as NotifyStateManagerSingleEntityChangedEventArgs; if (args.ReliableState.Name.ToString() == "urn:" + HealthStatusDictionary) { IReliableDictionary <int, NationalCountyStats> dictionary = (IReliableDictionary <int, NationalCountyStats>)args.ReliableState; dictionary.DictionaryChanged += this.Dictionary_DictionaryChanged; } } }
/// <summary> /// Handles the StateManagerChanged event of the StateManager control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="NotifyStateManagerChangedEventArgs" /> instance containing the event data.</param> private void StateManager_StateManagerChanged(object sender, NotifyStateManagerChangedEventArgs e) { NotifyStateManagerSingleEntityChangedEventArgs operation = e as NotifyStateManagerSingleEntityChangedEventArgs; if (operation != null && operation.Action == NotifyStateManagerChangedAction.Add) { if (operation.ReliableState is IReliableDictionary <string, UserState> ) { IReliableDictionary <string, UserState> dictionary = (IReliableDictionary <string, UserState>)operation.ReliableState; dictionary.DictionaryChanged += this.Dictionary_DictionaryChanged; } } }
private void OnStatesOnDictionaryChanged(object sender, NotifyDictionaryChangedEventArgs <string, IReliableState> dictionaryChangedEventArgs) { NotifyStateManagerSingleEntityChangedEventArgs args = null; switch (dictionaryChangedEventArgs) { case NotifyDictionaryItemAddedEventArgs <string, IReliableState> added: args = new NotifyStateManagerSingleEntityChangedEventArgs(added.Transaction, added.Value, NotifyStateManagerChangedAction.Add); break; case NotifyDictionaryItemRemovedEventArgs <string, IReliableState> removed: args = new NotifyStateManagerSingleEntityChangedEventArgs(removed.Transaction, null, NotifyStateManagerChangedAction.Remove); break; } if (args != null) { OnStateManagerChanged(args); } }
public MockReliableStateManager(TransactedConcurrentDictionary <Uri, IReliableState> store = null) { _store = store ?? new TransactedConcurrentDictionary <Uri, IReliableState>(new Uri("fabric://state", UriKind.Absolute)); _store.InternalDictionaryChanged += (sender, args) => { if (StateManagerChanged != null) { NotifyStateManagerSingleEntityChangedEventArgs changeEvent = null; switch (args.ChangeType) { case ChangeType.Added: changeEvent = new NotifyStateManagerSingleEntityChangedEventArgs(args.Transaction, args.Added, NotifyStateManagerChangedAction.Add); break; case ChangeType.Removed: changeEvent = new NotifyStateManagerSingleEntityChangedEventArgs(args.Transaction, args.Removed, NotifyStateManagerChangedAction.Remove); break; } StateManagerChanged.Invoke(this, changeEvent); } }; }