Search Results for

    Show / Hide Table of Contents

    Class AllocationPathProcessor

    A processor for determining the Level each entity within a path sits at

    Runs on saving changes to any IAllocationPathRule or IAllocationPath to ensure levels are always consistent and correct

    See https://help.lemonedge.com/allocation-paths/ for more information
    Inheritance
    System.Object
    AllocationPathProcessor
    Implements
    IBaseDataSetProcessorWithDBSave
    IBaseDataSetProcessor
    IProcessor
    System.IDisposable
    Inherited Members
    System.Object.Equals(System.Object)
    System.Object.Equals(System.Object, System.Object)
    System.Object.GetHashCode()
    System.Object.GetType()
    System.Object.MemberwiseClone()
    System.Object.ReferenceEquals(System.Object, System.Object)
    System.Object.ToString()
    Namespace: LemonEdge.API.Processors
    Assembly: API.dll
    Syntax
    public class AllocationPathProcessor : IBaseDataSetProcessorWithDBSave, IBaseDataSetProcessor, IProcessor, IDisposable

    Properties

    Cache

    A local cache for performance

    Declaration
    public IReadOnlyCache Cache { get; }
    Property Value
    Type Description
    IReadOnlyCache

    IgnoreEvents

    Indicates the processor should ignore changes to any items within the processor

    Normally used when the processor responds to an event and wants to prevent any other responses while it finishes processing that change

    Declaration
    public bool IgnoreEvents { get; set; }
    Property Value
    Type Description
    System.Boolean

    Loaded

    Flag to indicate if the processor has been fully loaded

    Declaration
    public bool Loaded { get; }
    Property Value
    Type Description
    System.Boolean

    Order

    If we have multiple save processors working, this indicates the order in which they will be processed with relation to each other

    Declaration
    public short Order { get; }
    Property Value
    Type Description
    System.Int16

    Reporter

    A reporter to provide feedback to a log, or client depending on the context the process is running under

    Declaration
    public BusyProgressReporter Reporter { get; set; }
    Property Value
    Type Description
    BusyProgressReporter

    SaveProcessed

    Indicates the ProcessOnDBSave has already been run. This is set by the system during save, and prevents recursive calls.

    It is also released by the system on save completion/failure

    Declaration
    public bool SaveProcessed { get; set; }
    Property Value
    Type Description
    System.Boolean

    Updater

    A context to ensure the process can query, load and modify all LemonEdge data

    Declaration
    public IEntityUpdater Updater { get; }
    Property Value
    Type Description
    IEntityUpdater

    User

    The current logged in user the process is running under

    Declaration
    public UserInfo User { get; }
    Property Value
    Type Description
    UserInfo

    Methods

    AddToDataSetToProcess(IBaseEntity, EntityOperation)

    Adds the specified IAllocationPathRule or IAllocationPath to this processor

    Declaration
    public void AddToDataSetToProcess(IBaseEntity item, EntityOperation operationType)
    Parameters
    Type Name Description
    IBaseEntity item

    THe IAllocationPathRule or IAllocationPath to add that is a part of this processor

    EntityOperation operationType

    The type of modification this item has

    Dispose()

    Declaration
    public void Dispose()

    Dispose(Boolean)

    Declaration
    protected virtual void Dispose(bool disposing)
    Parameters
    Type Name Description
    System.Boolean disposing

    GetAllowableEntityIDsInPath()

    Returns a list of the valid ids for entities within the EntitySetID that can be added to this allocation path

    Declaration
    public Task<IEnumerable<Guid>> GetAllowableEntityIDsInPath()
    Returns
    Type Description
    System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<System.Guid>>

    A task with a list of the valid ids for entities within the EntitySetID that can be added to this allocation path

    IsChangedItemPartOfDataSet(IBaseEntity)

    Returns true for a IAllocationPathRule or IAllocationPath that is part of the path this processor handles

    Declaration
    public bool IsChangedItemPartOfDataSet(IBaseEntity item)
    Parameters
    Type Name Description
    IBaseEntity item

    The item to see if it belongs in this processor

    Returns
    Type Description
    System.Boolean

    True for a IAllocationPathRule or IAllocationPath that is part of the path this processor handles

    Load()

    A thread safe implementation to load all required data for the processor

    Once completed Loaded should return true.

    Declaration
    public Task Load()
    Returns
    Type Description
    System.Threading.Tasks.Task

    A task indicating the completion of the load operation

    OnPathEntitySetChanged()

    Indicates the allocation path rules have changed and the processor needs to reload all the entities within the path

    Declaration
    public void OnPathEntitySetChanged()

    ProcessOnDBSave()

    Calculates the correct level (Level) for each entity in the path

    Declaration
    public Task ProcessOnDBSave()
    Returns
    Type Description
    System.Threading.Tasks.Task

    A task indicating the completion of the operation

    RollbackChanges()

    Changes are valid within the context anyway and do not need to be rolled back on failure

    Declaration
    public Task RollbackChanges()
    Returns
    Type Description
    System.Threading.Tasks.Task

    A task indicating the completion of the operation

    UpdateLevels()

    Updates all the Level values for the entities in the path to correctly reflect their order through the path

    Declaration
    public Task UpdateLevels()
    Returns
    Type Description
    System.Threading.Tasks.Task

    A task indicating the completion of the operation

    Validate()

    Any changes are valid within the context anyway

    Declaration
    public Task Validate()
    Returns
    Type Description
    System.Threading.Tasks.Task

    A task indicating the completion of the operation

    Implements

    IBaseDataSetProcessorWithDBSave
    IBaseDataSetProcessor
    IProcessor
    System.IDisposable

    Extension Methods

    MiscExtensions.SetIfNotEqual<T, P>(T, Expression<Func<T, P>>, P)
    ReflectionExtensions.ClearEventInvocations(Object, String)
    StringExtensions.ToCSVFormatString(Object, Type)
    SQLExtensions.ToSQLValue(Object, Boolean)

    See Also

    IAllocationPath
    In This Article
    Back to top © LemonEdge Technology. All rights reserved.