Class ContextLiveCache
All getitems are always executed live. Keyitems are cached locally
Implements
Inherited Members
Namespace: LemonEdge.API.Core.Data
Assembly: LemonEdge.API.dll
Syntax
public class ContextLiveCache : IReadOnlyCache
Constructors
ContextLiveCache(IEntityRetriever)
Declaration
public ContextLiveCache(IEntityRetriever context)
Parameters
Type | Name | Description |
---|---|---|
IEntityRetriever | context |
Methods
AddKeyItem(Type, string, IBaseEntity)
Adds a specified item to the cache for referral with the specified key
Declaration
public void AddKeyItem(Type itemType, string key, IBaseEntity item)
Parameters
Type | Name | Description |
---|---|---|
Type | itemType | |
string | key | The key for retrieving this item |
IBaseEntity | item | The item to add to the cache using this key |
AddKeyItem<T>(string, Func<Task<T>>)
Adds a specified item to the cache in a thread safe manner. Ensures getNewItem is only called if the cache does not already have a value, and getNewItem is not currently being executed for that key
Declaration
public Task<T> AddKeyItem<T>(string key, Func<Task<T>> getNewItem) where T : IBaseEntity
Parameters
Type | Name | Description |
---|---|---|
string | key | The key for retrieving this item |
Func<Task<T>> | getNewItem | A function that returns the new value if it is needed in a thread safe manner |
Returns
Type | Description |
---|---|
Task<T> | A task indicating the completion of this function |
Type Parameters
Name | Description |
---|---|
T | The type of item to add |
AddKeyItem<T>(string, T)
Adds a specified item to the cache for referral with the specified key
Declaration
public void AddKeyItem<T>(string key, T item) where T : IBaseEntity
Parameters
Type | Name | Description |
---|---|---|
string | key | The key for retrieving this item |
T | item | The item to add to the cache using this key |
Type Parameters
Name | Description |
---|---|
T | The type of item being added to the cache |
AddWeakKeyItem(string, object)
Declaration
public void AddWeakKeyItem(string key, object item)
Parameters
Type | Name | Description |
---|---|---|
string | key | |
object | item |
GetAllItems(Type)
Retrieves all items of a particular type
Declaration
public Task<IEnumerable<IBaseEntity>> GetAllItems(Type t)
Parameters
Type | Name | Description |
---|---|---|
Type | t | The type of items to retrieve all items of |
Returns
Type | Description |
---|---|
Task<IEnumerable<IBaseEntity>> | All items of a particular type |
GetAllItems<T>()
Retrieves all items of a particular type
Declaration
public Task<IEnumerable<T>> GetAllItems<T>() where T : IBaseEntity
Returns
Type | Description |
---|---|
Task<IEnumerable<T>> | All items of a particular type |
Type Parameters
Name | Description |
---|---|
T | The type of items to retrieve all items of |
GetItem<T>(Guid)
Returns a particular item by ID
Declaration
public Task<T> GetItem<T>(Guid id) where T : IBaseEntity
Parameters
Type | Name | Description |
---|---|---|
Guid | id | The ID of the item to return |
Returns
Type | Description |
---|---|
Task<T> | A particular item by ID |
Type Parameters
Name | Description |
---|---|
T | The type of item to return |
GetItems(Type, QueryableFilter)
Retrieves items of a particular type according to the specified filter
Declaration
public Task<IEnumerable<IBaseEntity>> GetItems(Type t, QueryableFilter filter)
Parameters
Type | Name | Description |
---|---|---|
Type | t | The type of items to retrieve |
QueryableFilter | filter |
Returns
Type | Description |
---|---|
Task<IEnumerable<IBaseEntity>> | Items of a particular type according to the specified filter |
GetItems<T>(QueryableFilter)
Retrieves items of a particular type according to the specified filter
Declaration
public Task<IEnumerable<T>> GetItems<T>(QueryableFilter filter) where T : IBaseEntity
Parameters
Type | Name | Description |
---|---|---|
QueryableFilter | filter |
Returns
Type | Description |
---|---|
Task<IEnumerable<T>> | Items of a particular type according to the specified filter |
Type Parameters
Name | Description |
---|---|
T | The type of items to retrieve all items of |
GetKeyItem(Type, string)
Retrieves a previously added key item (through AddKeyItem(Type, string, IBaseEntity)) using the specified key.
Declaration
public (bool ExistedInCache, IBaseEntity KeyItem) GetKeyItem(Type itemType, string key)
Parameters
Type | Name | Description |
---|---|---|
Type | itemType | |
string | key | The key for retrieving this item |
Returns
Type | Description |
---|---|
(bool ExistedInCache, IBaseEntity KeyItem) | Returns true if the key was added to the cache and returns the item. False and null otherwise |
GetKeyItem<T>(string)
Retrieves a previously added key item (through AddKeyItem<T>(string, T)) using the specified key.
Declaration
public (bool ExistedInCache, T KeyItem) GetKeyItem<T>(string key) where T : IBaseEntity
Parameters
Type | Name | Description |
---|---|---|
string | key | The key for retrieving this item |
Returns
Type | Description |
---|---|
(bool ExistedInCache, T KeyItem) | Returns true if the key was added to the cache and returns the item. False and null otherwise |
Type Parameters
Name | Description |
---|---|
T | The type of item to retrieve from the cache |
GetWeakKeyItem(string)
Declaration
public object GetWeakKeyItem(string key)
Parameters
Type | Name | Description |
---|---|---|
string | key |
Returns
Type | Description |
---|---|
object |
InvalidateCachedItem<T>(Guid)
Invalidate the particular cached item
Declaration
public Task InvalidateCachedItem<T>(Guid id) where T : IBaseEntity
Parameters
Type | Name | Description |
---|---|---|
Guid | id | The id of the item to invalidate |
Returns
Type | Description |
---|---|
Task | A task indicating when the operation is complete |
Type Parameters
Name | Description |
---|---|
T | The type of the item in the cache to invalidate |
InvalidateCachedItems(Type)
Invalidates all cached items of a particular type. Called whenever a context saves changes to items of this type
Declaration
public Task InvalidateCachedItems(Type t)
Parameters
Type | Name | Description |
---|---|---|
Type | t | The type of items in the cache to invalidate |
Returns
Type | Description |
---|---|
Task | A task indicating when the operation is complete |
InvalidateCachedItems<T>()
Invalidates all cached items of a particular type. Called whenever a context saves changes to items of this type
Declaration
public Task InvalidateCachedItems<T>() where T : IBaseEntity
Returns
Type | Description |
---|---|
Task | A task indicating when the operation is complete |
Type Parameters
Name | Description |
---|---|
T | The type of items in the cache to invalidate |
InvalidateKeyItems()
Invalidates the cached items that have been created through any AddKeyItem call
Declaration
public void InvalidateKeyItems()