public async Task SetCurrentNodeAsync(AlexaRequest req, AlexaResponse resp, string currentNodeName) { CloudTable sessionTable = GetCloudTable(); // Create a new customer entity. string userId = this.GetUserId(req); string appId = req.Session?.Application?.ApplicationId; string userIdHash = GetStringSha256Hash(userId); SessionStorageEntity sessionEntity = new SessionStorageEntity(appId, userIdHash); sessionEntity.CurrentNodeName = currentNodeName; sessionEntity.LastAccessTime = DateTime.UtcNow; // Create the TableOperation object that inserts the customer entity. TableOperation insertOperation = TableOperation.InsertOrReplace(sessionEntity); await sessionTable.ExecuteAsync(insertOperation); }
public override async Task <string> GetCurrentNodeNameAsync(AlexaRequest req) { string curNodeName = null; string userId = this.GetUserId(req); string appId = req.Session?.Application?.ApplicationId; string userIdHash = GetStringSha256Hash(userId); TableOperation retrieveOperation = TableOperation.Retrieve <SessionStorageEntity>(appId, userIdHash); CloudTable sessionTable = GetCloudTable(); TableResult tabResult = null; tabResult = await sessionTable.ExecuteAsync(retrieveOperation); if (tabResult.HttpStatusCode == 200) { SessionStorageEntity storageEntity = (SessionStorageEntity)tabResult.Result; curNodeName = storageEntity.CurrentNodeName; } return(curNodeName); }