From 0d3e5647e46fce9cf67f1ae2a1bb2ab3fcc0a30a Mon Sep 17 00:00:00 2001
From: "judahreeves@yahoo.com" <judahreeves@yahoo.com>
Date: Tue, 18 Jan 2022 23:18:23 -0500
Subject: [PATCH 1/5] Supports Compact as implemented by MemoryCache

---
 LazyCache/CachingService.cs                |  6 +++++-
 LazyCache/ICacheProvider.cs                |  1 +
 LazyCache/Mocks/MockCacheProvider.cs       |  5 +++++
 LazyCache/Providers/MemoryCacheProvider.cs | 10 ++++++++++
 4 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/LazyCache/CachingService.cs b/LazyCache/CachingService.cs
index df091de..92162ec 100644
--- a/LazyCache/CachingService.cs
+++ b/LazyCache/CachingService.cs
@@ -43,7 +43,7 @@ public CachingService(ICacheProvider cache) : this(() => cache)
             = new Lazy<ICacheProvider>(() =>
                 new MemoryCacheProvider(
                     new MemoryCache(
-                        new MemoryCacheOptions())
+                        new MemoryCacheOptions() )
                 ));
 
         /// <summary>
@@ -183,6 +183,10 @@ public virtual Task<T> GetOrAddAsync<T>(string key, Func<ICacheEntry, Task<T>> a
             return GetOrAddAsync(key, addItemFactory, null);
         }
 
+        public virtual void Compact(double percentage)
+        {
+            CacheProvider.Compact(percentage);
+        }
         public virtual async Task<T> GetOrAddAsync<T>(string key, Func<ICacheEntry, Task<T>> addItemFactory,
             MemoryCacheEntryOptions policy)
         {
diff --git a/LazyCache/ICacheProvider.cs b/LazyCache/ICacheProvider.cs
index d96c257..d2e2bad 100644
--- a/LazyCache/ICacheProvider.cs
+++ b/LazyCache/ICacheProvider.cs
@@ -13,5 +13,6 @@ public interface ICacheProvider : IDisposable
         void Remove(string key);
         Task<T> GetOrCreateAsync<T>(string key, Func<ICacheEntry, Task<T>> func);
         bool TryGetValue<T>(object key, out T value);
+        void Compact(double percentage);
     }
 }
\ No newline at end of file
diff --git a/LazyCache/Mocks/MockCacheProvider.cs b/LazyCache/Mocks/MockCacheProvider.cs
index 019eaf4..f79179d 100644
--- a/LazyCache/Mocks/MockCacheProvider.cs
+++ b/LazyCache/Mocks/MockCacheProvider.cs
@@ -43,5 +43,10 @@ public bool TryGetValue<T>(object key, out T value)
         public void Dispose()
         {
         }
+
+        public void Compact(double percentage)
+        {
+            
+        }
     }
 }
\ No newline at end of file
diff --git a/LazyCache/Providers/MemoryCacheProvider.cs b/LazyCache/Providers/MemoryCacheProvider.cs
index bbee381..6a95730 100644
--- a/LazyCache/Providers/MemoryCacheProvider.cs
+++ b/LazyCache/Providers/MemoryCacheProvider.cs
@@ -88,5 +88,15 @@ public void Dispose()
         {
             cache?.Dispose();
         }
+
+        public void Compact(double percentage)
+        {
+            if (cache is MemoryCache)
+            {
+                var c = cache as MemoryCache;
+                if (c != null)
+                    c.Compact(percentage);
+            }
+        }
     }
 }
\ No newline at end of file

From c467e90b91424cc52b90df8f0b12a20a6b4b8605 Mon Sep 17 00:00:00 2001
From: "judahreeves@yahoo.com" <judahreeves@yahoo.com>
Date: Tue, 18 Jan 2022 23:20:09 -0500
Subject: [PATCH 2/5] Remove whitespace

---
 LazyCache/CachingService.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/LazyCache/CachingService.cs b/LazyCache/CachingService.cs
index 92162ec..ab74675 100644
--- a/LazyCache/CachingService.cs
+++ b/LazyCache/CachingService.cs
@@ -43,7 +43,7 @@ public CachingService(ICacheProvider cache) : this(() => cache)
             = new Lazy<ICacheProvider>(() =>
                 new MemoryCacheProvider(
                     new MemoryCache(
-                        new MemoryCacheOptions() )
+                        new MemoryCacheOptions())
                 ));
 
         /// <summary>

From 46306a198e84046d662de9c2cf584be80b511980 Mon Sep 17 00:00:00 2001
From: "judahreeves@yahoo.com" <judahreeves@yahoo.com>
Date: Thu, 8 Feb 2024 20:42:12 -0500
Subject: [PATCH 3/5] Nuget updates

---
 LazyCache/LazyCache.csproj | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/LazyCache/LazyCache.csproj b/LazyCache/LazyCache.csproj
index 6dc7659..7573ce8 100644
--- a/LazyCache/LazyCache.csproj
+++ b/LazyCache/LazyCache.csproj
@@ -23,9 +23,9 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <None Include="..\artwork\logo-128.png" Pack="true" PackagePath=""/>
-    <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="2.1.0" />
-    <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="2.1.0" />
+    <None Include="..\artwork\logo-128.png" Pack="true" PackagePath="" />
+    <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="8.0.0" />
+    <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
   </ItemGroup>
 
 </Project>

From 1752087bed992fee6aca67ec46781dbb28ba7cfa Mon Sep 17 00:00:00 2001
From: "judahreeves@yahoo.com" <judahreeves@yahoo.com>
Date: Sun, 12 May 2024 20:41:55 -0400
Subject: [PATCH 4/5] Proj Changes

---
 LazyCache/LazyCache.csproj | 1 +
 1 file changed, 1 insertion(+)

diff --git a/LazyCache/LazyCache.csproj b/LazyCache/LazyCache.csproj
index 7573ce8..4ab4505 100644
--- a/LazyCache/LazyCache.csproj
+++ b/LazyCache/LazyCache.csproj
@@ -20,6 +20,7 @@
     <PackageTags>Caching Performance Speed In-memory IMemoryCache Generics ServiceCacheing Lazy Cache Lazy-Load MemoryCache CachingService AppCache ApplicationCache Memcached</PackageTags>
     <PackageReleaseNotes>See https://raw.githubusercontent.com/alastairtree/LazyCache/master/ReleaseNotes.md</PackageReleaseNotes>
     <PackageLicenseExpression>MIT</PackageLicenseExpression>
+    <Platforms>AnyCPU;x64</Platforms>
   </PropertyGroup>
 
   <ItemGroup>

From a1d5e202f4dad8c51bb80f6b61e876aa5276a914 Mon Sep 17 00:00:00 2001
From: "judahreeves@yahoo.com" <judahreeves@yahoo.com>
Date: Wed, 13 Nov 2024 21:14:58 -0500
Subject: [PATCH 5/5] shrink targets

---
 LazyCache/LazyCache.csproj | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/LazyCache/LazyCache.csproj b/LazyCache/LazyCache.csproj
index 4ab4505..3c7c79a 100644
--- a/LazyCache/LazyCache.csproj
+++ b/LazyCache/LazyCache.csproj
@@ -26,7 +26,7 @@
   <ItemGroup>
     <None Include="..\artwork\logo-128.png" Pack="true" PackagePath="" />
     <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="8.0.0" />
-    <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
+    <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.1" />
   </ItemGroup>
 
 </Project>