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()); }
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); }