Ejemplo n.º 1
0
        public static async Task <IAsyncEnumerable <T> > CreateLinqAsyncEnumerable <T>(
            this IReliableQueue <T> dictionary, Microsoft.ServiceFabric.Data.ITransaction txn)
        {
            var enumerable = await dictionary.CreateEnumerableAsync(txn).ConfigureAwait(false);

            return(enumerable.AsAsyncEnumerable());
        }
Ejemplo n.º 2
0
        private static async Task <IEnumerable <object> > EnumerateState <T>(IReliableStateManager stateManager, IReliableQueue <T> collection, CancellationToken cancellationToken)
        {
            var list = new List <object>();

            using (var tx = stateManager.CreateTransaction())
            {
                var enumerable = await collection.CreateEnumerableAsync(tx);

                var enumerator = enumerable.GetAsyncEnumerator();
                while (await enumerator.MoveNextAsync(cancellationToken))
                {
                    list.Add(enumerator.Current);
                }
            }
            return(list);
        }
        public async Task <ChatRoom> GetRoomAsync(string roomName, CancellationToken cancellationToken)
        {
            IReliableQueue <ChatMessage> room = await GetRoomQueue(roomName);

            ChatRoom chatRoom = new ChatRoom(roomName);

            using (var tx = stateManager.CreateTransaction())
            {
                var roomIterator = (await room.CreateEnumerableAsync(tx)).GetAsyncEnumerator();

                while (await roomIterator.MoveNextAsync(cancellationToken))
                {
                    var msg = roomIterator.Current;
                    chatRoom.messages.Add(msg);
                }
            }

            return(chatRoom);
        }