Search Results for

    Show / Hide Table of Contents

    Class DatabaseCache

    Inheritance
    object
    DatabaseCache
    Implements
    IReadOnlyCache
    Inherited Members
    object.GetType()
    object.MemberwiseClone()
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    Namespace: LemonEdge.Connections.Database
    Assembly: LemonEdge.Database.Connector.dll
    Syntax
    public class DatabaseCache : IReadOnlyCache

    Constructors

    DatabaseCache(IDatabaseInfo, long, Guid?, EntityContext, IEntityContextFactory, IEntityDescriptorFactory)

    Declaration
    public DatabaseCache(IDatabaseInfo dbInfo, long accountID, Guid? canvasID, EntityContext context, IEntityContextFactory entityContextFactory, IEntityDescriptorFactory entityDescriptorFactory)
    Parameters
    Type Name Description
    IDatabaseInfo dbInfo
    long accountID
    Guid? canvasID
    EntityContext context
    IEntityContextFactory entityContextFactory
    IEntityDescriptorFactory entityDescriptorFactory

    Methods

    AddKeyItem(long, Guid?, Type, string, IBaseEntity)

    Declaration
    public void AddKeyItem(long accountID, Guid? canvasID, Type itemType, string key, IBaseEntity item)
    Parameters
    Type Name Description
    long accountID
    Guid? canvasID
    Type itemType
    string key
    IBaseEntity item

    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>(long, Guid?, string, Func<Task<T>>)

    Declaration
    public Task<T> AddKeyItem<T>(long accountID, Guid? canvasID, string key, Func<Task<T>> getNewItem) where T : IBaseEntity
    Parameters
    Type Name Description
    long accountID
    Guid? canvasID
    string key
    Func<Task<T>> getNewItem
    Returns
    Type Description
    Task<T>
    Type Parameters
    Name Description
    T

    AddKeyItem<T>(long, Guid?, string, T)

    Declaration
    public void AddKeyItem<T>(long accountID, Guid? canvasID, string key, T item) where T : IBaseEntity
    Parameters
    Type Name Description
    long accountID
    Guid? canvasID
    string key
    T item
    Type Parameters
    Name Description
    T

    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

    ClearCache(long, bool)

    Declaration
    public static Task ClearCache(long accountID, bool supressMessageNotification = false)
    Parameters
    Type Name Description
    long accountID
    bool supressMessageNotification
    Returns
    Type Description
    Task

    ClearCachedTypes(long, string, bool)

    Declaration
    public static Task ClearCachedTypes(long accountID, string type, bool supressMessageNotification = false)
    Parameters
    Type Name Description
    long accountID
    string type
    bool supressMessageNotification
    Returns
    Type Description
    Task

    ClearCachedTypes(long, Type[])

    Called with distinct set of types being inserted/updated/deleted in the database - changes have been successfully saved So if any of those types are being cached we need to clear the cache of those object, or objects dependant on them

    Declaration
    public static Task ClearCachedTypes(long accountID, Type[] distinctTypesChanged)
    Parameters
    Type Name Description
    long accountID
    Type[] distinctTypesChanged
    Returns
    Type Description
    Task

    ClearCachedUsers(bool)

    Declaration
    public static Task ClearCachedUsers(bool supressMessageNotification = false)
    Parameters
    Type Name Description
    bool supressMessageNotification
    Returns
    Type Description
    Task

    EnsureMessengerRegistered()

    Declaration
    public void EnsureMessengerRegistered()

    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

    GetAllItemsGeneric<T>()

    Declaration
    public Task<IEnumerable> GetAllItemsGeneric<T>() where T : IBaseEntity
    Returns
    Type Description
    Task<IEnumerable>
    Type Parameters
    Name Description
    T

    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

    GetAllItems<T>(long, Guid?)

    Declaration
    public Task<IEnumerable<T>> GetAllItems<T>(long accountID, Guid? canvasID) where T : IBaseEntity
    Parameters
    Type Name Description
    long accountID
    Guid? canvasID
    Returns
    Type Description
    Task<IEnumerable<T>>
    Type Parameters
    Name Description
    T

    GetAndCacheUserByEmail(string)

    Declaration
    public Task<IUser> GetAndCacheUserByEmail(string email)
    Parameters
    Type Name Description
    string email
    Returns
    Type Description
    Task<IUser>

    GetAndCacheUserByToken(string)

    Declaration
    public Task<IUser> GetAndCacheUserByToken(string token)
    Parameters
    Type Name Description
    string token
    Returns
    Type Description
    Task<IUser>

    GetItemGeneric<T>(Guid)

    Declaration
    public Task<IBaseEntity> GetItemGeneric<T>(Guid id) where T : IBaseEntity
    Parameters
    Type Name Description
    Guid id
    Returns
    Type Description
    Task<IBaseEntity>
    Type Parameters
    Name Description
    T

    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

    GetItem<T>(long, Guid?, Guid)

    Declaration
    public Task<T> GetItem<T>(long accountID, Guid? canvasID, Guid id) where T : IBaseEntity
    Parameters
    Type Name Description
    long accountID
    Guid? canvasID
    Guid id
    Returns
    Type Description
    Task<T>
    Type Parameters
    Name Description
    T

    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

    GetItemsGeneric<T>(QueryableFilter)

    Declaration
    public Task<IEnumerable> GetItemsGeneric<T>(QueryableFilter filter) where T : IBaseEntity
    Parameters
    Type Name Description
    QueryableFilter filter
    Returns
    Type Description
    Task<IEnumerable>
    Type Parameters
    Name Description
    T

    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

    GetItems<T>(long, Guid?, QueryableFilter)

    Declaration
    public Task<IEnumerable<T>> GetItems<T>(long accountID, Guid? canvasID, QueryableFilter filter) where T : IBaseEntity
    Parameters
    Type Name Description
    long accountID
    Guid? canvasID
    QueryableFilter filter
    Returns
    Type Description
    Task<IEnumerable<T>>
    Type Parameters
    Name Description
    T

    GetKeyItem(long, Guid?, Type, string)

    Declaration
    public (bool, IBaseEntity) GetKeyItem(long accountID, Guid? canvasID, Type itemType, string key)
    Parameters
    Type Name Description
    long accountID
    Guid? canvasID
    Type itemType
    string key
    Returns
    Type Description
    (bool ExistedInCache, IBaseEntity KeyItem)

    GetKeyItem(Type, string)

    Retrieves a previously added key item (through AddKeyItem(Type, string, IBaseEntity)) using the specified key.

    Declaration
    public (bool, IBaseEntity) 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>(long, Guid?, string)

    Declaration
    public (bool, T) GetKeyItem<T>(long accountID, Guid? canvasID, string key) where T : IBaseEntity
    Parameters
    Type Name Description
    long accountID
    Guid? canvasID
    string key
    Returns
    Type Description
    (bool ExistedInCache, T KeyItem)
    Type Parameters
    Name Description
    T

    GetKeyItem<T>(string)

    Retrieves a previously added key item (through AddKeyItem<T>(string, T)) using the specified key.

    Declaration
    public (bool, T) 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()

    Implements

    IReadOnlyCache

    Extension Methods

    LinqExtensions.AsArray<T>(T)
    LinqExtensions.ToArrayOfOne<T>(T)
    LinqExtensions.ToListOfOne<T>(T)
    MiscExtensions.SetIfNotEqual<T, TP>(T, Expression<Func<T, TP>>, TP)
    WeakReferenceExtensions.WeakReference(object)
    SQLExtensions.ToSQLValue(object, bool)
    ReflectionExtensions.ClearEventInvocations(object, string)
    StringExtensions.ToCSVFormatString(object, Type)
    In this article
    Back to top © LemonEdge Technologies. All rights reserved.