Class RuleProcessor
A processor for determining the Level each entity within a path sits at and also ensures all changes that affect a path result in an updated compiledpath set of entries
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 informationInherited Members
Namespace: LemonEdge.API.Core.FinancialServices.Processors
Assembly: LemonEdge.API.Core.FinancialServices.dll
Syntax
public class RuleProcessor : 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 |
|---|---|
| bool |
Loaded
Flag to indicate if the processor has been fully loaded
Declaration
public bool Loaded { get; }
Property Value
| Type | Description |
|---|---|
| bool |
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 |
|---|---|
| short |
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 |
|---|---|
| bool |
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 IAllocationRule or IAllocationAmount to this processor
Declaration
public void AddToDataSetToProcess(IBaseEntity item, EntityOperation operationType)
Parameters
| Type | Name | Description |
|---|---|---|
| IBaseEntity | item | THe IAllocationRule or IAllocationAmount to add that is a part of this processor |
| EntityOperation | operationType | The type of modification this item has |
Dispose()
Declaration
public void Dispose()
Dispose(bool)
Declaration
protected virtual void Dispose(bool disposing)
Parameters
| Type | Name | Description |
|---|---|---|
| bool | disposing |
IsChangedItemPartOfDataSet(IBaseEntity)
Returns true for a IAllocationRule or IAllocationAmount 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 |
|---|---|
| bool | True for a IAllocationRule or IAllocationAmount 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 |
|---|---|
| Task | A task indicating the completion of the load operation |
ProcessOnDBSave()
Will only run when connected to the database directly.
i.e. in the web service or in a client connected to the db service, not in a client connected to the web service.
For the client connected to the webservice, as part of the webservices save routine it will call this.Declaration
public Task ProcessOnDBSave()
Returns
| Type | Description |
|---|---|
| Task |
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 |
|---|---|
| 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 |
|---|---|
| Task | A task indicating the completion of the operation |