public void CleanupItemsOlderThan() { using (var connection = Connection.OpenConnection()) { Installer.CreateTable(connection); persister.DeleteAllRows(connection, null); persister.SaveStream(connection, null, "theMessageId1", "theName", new DateTime(2000, 1, 1, 1, 1, 1), GetStream()).GetAwaiter().GetResult(); persister.SaveStream(connection, null, "theMessageId2", "theName", new DateTime(2002, 1, 1, 1, 1, 1), GetStream()).GetAwaiter().GetResult(); persister.CleanupItemsOlderThan(connection, null, new DateTime(2001, 1, 1, 1, 1, 1)); ObjectApprover.VerifyWithJson(persister.ReadAllMetadata(connection, null)); } }
static Cleaner CreateCleaner(AttachmentSettings settings, StreamPersister streamPersister, IBuilder builder) { return(new Cleaner(async token => { using (var connection = await settings.ConnectionFactory().ConfigureAwait(false)) { streamPersister.CleanupItemsOlderThan(connection, null, DateTime.UtcNow); } }, criticalError: builder.Build <CriticalError>().Raise, frequencyToRunCleanup: TimeSpan.FromHours(1), timer: new AsyncTimer())); }