public static void DeleteExpiredSessions()

in src/DynamoDBSessionStateStore.cs [782:810]


        public static void DeleteExpiredSessions(IAmazonDynamoDB dbClient, string tableName)
        {
            LogInfo("DeleteExpiredSessions");
            var tableConfig = CreateTableConfig(tableName);
            Table table = Table.LoadTable(dbClient, tableConfig);


            ScanFilter filter = new ScanFilter();
            filter.AddCondition(ATTRIBUTE_EXPIRES, ScanOperator.LessThan, DateTime.Now);

            ScanOperationConfig config = new ScanOperationConfig();
            config.AttributesToGet = new List<string> { ATTRIBUTE_SESSION_ID };
            config.Select = SelectValues.SpecificAttributes;
            config.Filter = filter;

            Search search = table.Scan(config);

            do
            {
                DocumentBatchWrite batchWrite = table.CreateBatchWrite();
                List<Document> page = search.GetNextSet();
                foreach (var document in page)
                {
                    batchWrite.AddItemToDelete(document);
                }
                
                batchWrite.Execute();
            } while (!search.IsDone);
        }