示例#1
0
        //Generic query method based on a Filter, returning a IList<T>
        public static async Task <IList <T> > QueryReliableDictionary <T>(Microsoft.ServiceFabric.Data.IReliableStateManager stateManager,
                                                                          string reliableDictionaryName,
                                                                          Func <T, bool> filter)
        {
            var result = new List <T>();

            IReliableDictionary <Guid, T> reliableDictionary =
                await stateManager.GetOrAddAsync <IReliableDictionary <Guid, T> >(reliableDictionaryName);

            using (var tx = stateManager.CreateTransaction())
            {
                Microsoft.ServiceFabric.Data.IAsyncEnumerable <KeyValuePair <Guid, T> > asyncEnumerable =
                    await reliableDictionary.CreateEnumerableAsync(tx);

                using (Microsoft.ServiceFabric.Data.IAsyncEnumerator <KeyValuePair <Guid, T> > asyncEnumerator = asyncEnumerable.GetAsyncEnumerator())
                {
                    while (await asyncEnumerator.MoveNextAsync(CancellationToken.None))
                    {
                        bool addToResult = false;
                        if (filter == null)
                        {
                            addToResult = true;
                        }
                        else
                        {
                            if (filter(asyncEnumerator.Current.Value))
                            {
                                addToResult = true;
                            }
                        }
                        if (addToResult)
                        {
                            result.Add(asyncEnumerator.Current.Value);
                        }
                    }
                }
            }
            return(result);
        }
示例#2
0
 public static void StateManager(this NServiceBus.PersistenceExtensions <NServiceBus.Persistence.ServiceFabric.ServiceFabricPersistence> configuration, Microsoft.ServiceFabric.Data.IReliableStateManager stateManager)
 {
 }