示例#1
0
        public async Task <ISessionData> GetSession(Guid sessionId)
        {
            TableQuery <SessionTableEntry> query = new TableQuery <SessionTableEntry>()
                                                   .Where(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, sessionId.ToString()));

            var results = await SessionTable.ExecuteQuerySegmentedAsync(query, null);

            return(results.FirstOrDefault());
        }
示例#2
0
        public async Task <IEnumerable <ISessionData> > GetSessions()
        {
            // Doing a full query like this is very expensive, as if we ever need to support more than a couple of sessions
            // then we should probably maintain a list of open sessions in the database
            List <SessionTableEntry>       results = new List <SessionTableEntry>();
            TableQuery <SessionTableEntry> query   = new TableQuery <SessionTableEntry>();

            // Initialize the continuation token to null to start from the beginning of the table.
            TableContinuationToken continuationToken = null;

            // Loop until the continuation token comes back as null
            do
            {
                var queryResults = await SessionTable.ExecuteQuerySegmentedAsync(query, continuationToken);

                continuationToken = queryResults.ContinuationToken;
                results.AddRange(queryResults.Results);
            }while (continuationToken != null);

            return(results);
        }