mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-29 05:16:34 +02:00
non-working cached repository.
This commit is contained in:
40
NzbDrone.Core/Datastore/CachedBasicRepository.cs
Normal file
40
NzbDrone.Core/Datastore/CachedBasicRepository.cs
Normal file
@@ -0,0 +1,40 @@
|
||||
using System.Collections.Generic;
|
||||
using NzbDrone.Common.Cache;
|
||||
using NzbDrone.Common.Messaging;
|
||||
|
||||
namespace NzbDrone.Core.Datastore
|
||||
{
|
||||
public abstract class CachedBasicRepository<TModel> : BasicRepository<TModel> where TModel : ModelBase, new()
|
||||
{
|
||||
private readonly ICacheManger _cacheManger;
|
||||
|
||||
protected CachedBasicRepository(IDatabase database, IMessageAggregator messageAggregator)
|
||||
: base(database, messageAggregator)
|
||||
{
|
||||
_cacheManger = new CacheManger();
|
||||
}
|
||||
|
||||
protected ICached<T> GetCache<T>(string name)
|
||||
{
|
||||
return _cacheManger.GetCache<T>(GetType(), name);
|
||||
}
|
||||
|
||||
protected override void OnModelChanged(IEnumerable<TModel> models)
|
||||
{
|
||||
PurgeCache();
|
||||
}
|
||||
|
||||
protected override void OnModelDeleted(IEnumerable<TModel> models)
|
||||
{
|
||||
PurgeCache();
|
||||
}
|
||||
|
||||
private void PurgeCache()
|
||||
{
|
||||
foreach (var model in _cacheManger.Caches)
|
||||
{
|
||||
model.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user