Class TransactionProcessor
Implements
Inherited Members
Namespace: LemonEdge.API.Core.FinancialServices.Processors.Transactional
Assembly: LemonEdge.API.Core.FinancialServices.dll
Syntax
public class TransactionProcessor : BaseTransactionProcessor, ICanBeRevertedTransactionProcessor, ITransactionProcessor, IBaseDataSetProcessorWithDBSave, IBaseDataSetProcessor, IProcessor, IDisposable, ILockable, IProcessorSupportsBulkLoad<ITransactionProcessor>
Constructors
TransactionProcessor(IEntityUpdater, IReadOnlyCache, UserInfo, IServiceContext, IExchangeRateRetriever, IPathSplitIdProvider, ITransactionPathSplitUpdater, IGlPostingPathSplitUpdater)
Declaration
public TransactionProcessor(IEntityUpdater updater, IReadOnlyCache cache, UserInfo user, IServiceContext services, IExchangeRateRetriever exchangeRateRetriever, IPathSplitIdProvider pathSplitProvider, ITransactionPathSplitUpdater transactionPathSplitUpdater, IGlPostingPathSplitUpdater glPostingPathSplitUpdater)
Parameters
Type | Name | Description |
---|---|---|
IEntityUpdater | updater | |
IReadOnlyCache | cache | |
UserInfo | user | |
IServiceContext | services | |
IExchangeRateRetriever | exchangeRateRetriever | |
IPathSplitIdProvider | pathSplitProvider | |
ITransactionPathSplitUpdater | transactionPathSplitUpdater | |
IGlPostingPathSplitUpdater | glPostingPathSplitUpdater |
Properties
DefaultRounding
The default rounding level to use with a Rounder
Declaration
public RoundingLevel DefaultRounding { get; }
Property Value
Type | Description |
---|---|
RoundingLevel |
ExchangeRateRetriever
A retriever for acquiring the valid exchange rate for a requested from/to currency and associated date
Declaration
public IExchangeRateRetriever ExchangeRateRetriever { get; }
Property Value
Type | Description |
---|---|
IExchangeRateRetriever |
GetAllTransactions
Returns all transaction records (the root transaction, header transactions and sub-transactions) within this processor
Declaration
public IEnumerable<ITransaction> GetAllTransactions { get; }
Property Value
Type | Description |
---|---|
IEnumerable<ITransaction> |
HeaderTransactions
An enumeration of all header transactions in this processor.
Header transactions are all individually processed unless working together using a TransactionProcessorExtender
Declaration
public IEnumerable<ITransaction> HeaderTransactions { get; }
Property Value
Type | Description |
---|---|
IEnumerable<ITransaction> |
Helper
A helper class for dealing with transaction operations and ensuring values are updated consistently
Declaration
public ITransactionsHelper Helper { get; }
Property Value
Type | Description |
---|---|
ITransactionsHelper |
InstrumentHelper
Declaration
public ITransactionInstrumentEntityHelper InstrumentHelper { get; }
Property Value
Type | Description |
---|---|
ITransactionInstrumentEntityHelper |
Links
Declaration
public List<ITransactionLink> Links { get; }
Property Value
Type | Description |
---|---|
List<ITransactionLink> |
Loaded
Flag to indicate if the processor has been fully loaded
Declaration
public override bool Loaded { get; }
Property Value
Type | Description |
---|---|
bool |
Overrides
RootTransaction
The parent root transaction this processor is responsible for calculating.
All other header and sub transactions pointing to this root are part of the set and will be processed by this algorithm too
Declaration
public ITransaction RootTransaction { get; }
Property Value
Type | Description |
---|---|
ITransaction |
RootTransactionEntity
The root transaction entity for this transaction processor
Declaration
public override IHeaderTransactionalEntity RootTransactionEntity { get; }
Property Value
Type | Description |
---|---|
IHeaderTransactionalEntity |
Overrides
RootTransactionID
Declaration
public Guid RootTransactionID { get; }
Property Value
Type | Description |
---|---|
Guid |
Methods
AddCodeVaue(ITransaction, Guid)
Adds the specified transaction type value to be recorded against the specified transaction (and all its sub-transactions) itself
Declaration
public void AddCodeVaue(ITransaction transaction, Guid tranTypeValueID)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | The transaction (and all associated sub-transactions) to add the specified transaction type value to |
Guid | tranTypeValueID | The transaction type value to add to the transaction |
AddToDataSetToProcess(IBaseEntity, EntityOperation)
If a modified item belongs in the processor (IsChangedItemPartOfDataSet(IBaseEntity)), this adds the item to the processor if it already isn't a member of it
Declaration
public override void AddToDataSetToProcess(IBaseEntity item, EntityOperation operationType)
Parameters
Type | Name | Description |
---|---|---|
IBaseEntity | item | The item to add to the processor |
EntityOperation | operationType | The type of operation that modified the item. Useful as deleted items can often be treated differently in a processor. |
Overrides
CacheSetting(ITransaction)
Declaration
public Task CacheSetting(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran |
Returns
Type | Description |
---|---|
Task |
CanWrite(IBaseEntity)
Indicates if the processor allows items to be written to depending on the users permission and transaction status
Declaration
public override bool CanWrite(IBaseEntity baseEntity)
Parameters
Type | Name | Description |
---|---|---|
IBaseEntity | baseEntity |
Returns
Type | Description |
---|---|
bool |
Overrides
ConsolidateTransfers(ITransaction)
If you have allocations within the transaction that has transfers within them, it will net them to a single allocation with the effect of the transfer. For example, an allocation of 50 + 50 to the same investor would result in a single allocation of 100.
Declaration
public Task ConsolidateTransfers(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran |
Returns
Type | Description |
---|---|
Task |
CreateGLPosting(ITransaction, ITransactionCodeGLEntry)
Creates a gl posting record for the specified parent
transaction and registers it
Declaration
public Task<IGLPosting> CreateGLPosting(ITransaction parent, ITransactionCodeGLEntry glEntry)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | parent | The transaction that is the parent of this gl posting |
ITransactionCodeGLEntry | glEntry | The optional transaction code gl entry this gl posting is being created for. Can be null if manually being created |
Returns
Type | Description |
---|---|
Task<IGLPosting> | A gl posting record for the specified |
CreateGLPostingAllocated(IGLPosting)
Creates a gl posting allocation record for the specified parent
gl posting and registers it
Declaration
public Task<IGLPostingAllocated> CreateGLPostingAllocated(IGLPosting parent)
Parameters
Type | Name | Description |
---|---|---|
IGLPosting | parent | The gl posting record that is a parent to this allocation |
Returns
Type | Description |
---|---|
Task<IGLPostingAllocated> | A gl posting allocation record for the specified |
CreateTransaction(ITransaction)
Creates a sub-transaction where the ParentTransactionID is set to the
specified parent
and registers it
Declaration
public Task<ITransaction> CreateTransaction(ITransaction parent)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | parent | The header transaction that is the parent of this created transaction |
Returns
Type | Description |
---|---|
Task<ITransaction> | A sub-transaction where the ParentTransactionID is set to the
specified |
CreateTransactionAllocated(ITransaction)
Creates a transaction allocation record for the specified parent
transaction and registers it
Declaration
public Task<ITransactionAllocated> CreateTransactionAllocated(ITransaction parent)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | parent | The transaction that is the parent of the created transaction allocation |
Returns
Type | Description |
---|---|
Task<ITransactionAllocated> | A transaction allocation record for the specified |
DeleteGLPosting(IGLPosting, bool)
Removes the specified gl posting from the processor, and stops listening to any changes against the record
This cascades to all gl posting allocations
Declaration
public Task DeleteGLPosting(IGLPosting posting, bool updateLog)
Parameters
Type | Name | Description |
---|---|---|
IGLPosting | posting | The gl posting to remove from the processor, and all associated gl posting allocations |
bool | updateLog | Indicates if the posting should also be removed from the IEntityUpdater context and marked for deletion. If not then it will update affected net amounts for other records, otherwise it assumes the caller will take care of it as it already marked the record for deletion too. |
Returns
Type | Description |
---|---|
Task |
DeleteGLPostingAllocated(IGLPostingAllocated, bool)
Removes the specified gl posting allocation from the processor, and stops listening to any changes against the record
Declaration
public Task DeleteGLPostingAllocated(IGLPostingAllocated allocated, bool updateLog)
Parameters
Type | Name | Description |
---|---|---|
IGLPostingAllocated | allocated | The gl posting allocation to remove from the processor |
bool | updateLog | Indicates if the posting allocation should also be removed from the IEntityUpdater context and marked for deletion. If not then it will update affected net amounts for other records, otherwise it assumes the caller will take care of it as it already marked the record for deletion too. |
Returns
Type | Description |
---|---|
Task |
DeleteTransaction(ITransaction, bool)
Removes the specified transaction from the processor, and stops listening to any changes against the record
This cascades to all sub-transactions, transaction allocations, gl postings, and gl posting allocations
If this transaction is the root transaction, the processor will be empty if there are no other transactions, or it will promote the next header transaction to become rootDeclaration
public Task DeleteTransaction(ITransaction transaction, bool updateLog)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | The transaction to remove from the processor, and all associated sub-transactions |
bool | updateLog | Indicates if the transaction should also be removed from the IEntityUpdater context and marked for deletion |
Returns
Type | Description |
---|---|
Task |
DeleteTransactionAllocated(ITransactionAllocated, bool)
Removes the specified transaction allocation from the processor, and stops listening to any changes against the record
This cascades to all gl posting allocations
Declaration
public Task DeleteTransactionAllocated(ITransactionAllocated transactionAllocated, bool updateLog)
Parameters
Type | Name | Description |
---|---|---|
ITransactionAllocated | transactionAllocated | |
bool | updateLog | Indicates if the transaction allocation should also be removed from the IEntityUpdater context and marked for deletion. If not then it will update affected net amounts for other records, otherwise it assumes the caller will take care of it as it already marked the record for deletion too. |
Returns
Type | Description |
---|---|
Task |
DisposeManagedState()
Declaration
protected override void DisposeManagedState()
Overrides
DoesGLValuesHaveSubAccount(ITransaction)
Declaration
public bool DoesGLValuesHaveSubAccount(ITransaction transaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction |
Returns
Type | Description |
---|---|
bool |
GetAllItemsInThisProcessorExcludingSubProcessors()
Returns all items in this base processor - Used by the system when reverting the status of a finalized transaction back to in progress
Declaration
public override IEnumerable<IBaseEntity> GetAllItemsInThisProcessorExcludingSubProcessors()
Returns
Type | Description |
---|---|
IEnumerable<IBaseEntity> | An enumeration of all items in this transactional processor |
Overrides
GetAllTransactionValuesAllocated(ITransaction)
Returns all allocated transaction values against the specified owningTransaction
and all its
sub-transactions (obtained from GetTransactionValues(ITransaction))
Declaration
public IEnumerable<ITransactionAllocated> GetAllTransactionValuesAllocated(ITransaction owningTransaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | owningTransaction | The owning header transaction to return all transaction allocations for (including those from any sub-transactions too) |
Returns
Type | Description |
---|---|
IEnumerable<ITransactionAllocated> | All allocated transaction values against the specified |
GetAllocateToValues(ITransaction)
Returns all the transaction allocation rules for creating a new transaction automatically to entities that are allocated to as part of a chain mapping
Declaration
public IEnumerable<(ITransactionCodeAllocateToTransaction, IEnumerable<ITransactionCodeAllocateToTransactionValue>)> GetAllocateToValues(ITransaction transaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | The transaction to retrieve all automatica transactions for |
Returns
Type | Description |
---|---|
IEnumerable<(ITransactionCodeAllocateToTransaction, IEnumerable<ITransactionCodeAllocateToTransactionValue>)> | All the transaction allocation rules for creating a new transaction automatically to entities that are allocated to as part of a chain mapping |
GetAllocatedEntityInOtherEntitySet(ITransaction, Guid)
If the specified allocated entity exists as an entity in another fund, this returns the id of the entity in the other fund
Declaration
public Task<Guid?> GetAllocatedEntityInOtherEntitySet(ITransaction transaction, Guid allocatedEntityID)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | |
Guid | allocatedEntityID |
Returns
Type | Description |
---|---|
Task<Guid?> |
GetCode(ITransaction)
Returns the actual transaction code for the specified owningTransaction
Declaration
public ITransactionCode GetCode(ITransaction owningTransaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | owningTransaction | The transaction to return the associated transaction code for its TransactionCodeID |
Returns
Type | Description |
---|---|
ITransactionCode | The actual transaction code for the specified |
GetCodeGLEntries(ITransaction)
Returns the transaction code gl entry settings for the specified transaction
This indicates which gl postings should automatically be created against the transaction
Declaration
public IEnumerable<ITransactionCodeGLEntry> GetCodeGLEntries(ITransaction transaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | The transaction to return the automatic gl entry settings for |
Returns
Type | Description |
---|---|
IEnumerable<ITransactionCodeGLEntry> | The transaction code gl entry settings for the specified |
GetCurrencyMatches(ITransaction)
Returns if currencies match
Declaration
public (bool LocalFunctional, bool localReporting) GetCurrencyMatches(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran |
Returns
Type | Description |
---|---|
(bool LocalFunctional, bool localReporting) |
GetDecimalPlaces(ITransaction)
Returns the decimal places for each currency in the transaction
Declaration
public (short Local, short Functional, short Reporting) GetDecimalPlaces(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran |
Returns
Type | Description |
---|---|
(short Local, short Functional, short Reporting) |
GetEntity(Guid)
Returns the specified entity, and the id of the entity set it belongs to for the specified transaction
Declaration
public Task<(IObjectEntity Entity, Guid EntitySetID)> GetEntity(Guid id)
Parameters
Type | Name | Description |
---|---|---|
Guid | id |
Returns
Type | Description |
---|---|
Task<(IObjectEntity Entity, Guid EntitySetID)> | The specified entity, and the id of the entity set it belongs to for the specified transaction |
GetEntitySet(Guid)
Returns the entity set from the specified id
Declaration
public Task<IEntitySet> GetEntitySet(Guid id)
Parameters
Type | Name | Description |
---|---|---|
Guid | id | ID of the required entity set |
Returns
Type | Description |
---|---|
Task<IEntitySet> | The entity set from the specified id |
GetEntry(ITransactionCodeValue, ITransactionTypeValue)
Declaration
public TransactionTypeValueEntry GetEntry(ITransactionCodeValue value, ITransactionTypeValue def)
Parameters
Type | Name | Description |
---|---|---|
ITransactionCodeValue | value | |
ITransactionTypeValue | def |
Returns
Type | Description |
---|---|
TransactionTypeValueEntry |
GetFunctionalCurrency(ITransaction)
Declaration
public ICurrency GetFunctionalCurrency(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran |
Returns
Type | Description |
---|---|
ICurrency |
GetGLValues(ITransaction)
Returns all gl posting records directly associated with the specified owningTransaction
and its
sub-transactions
Declaration
public IEnumerable<IGLPosting> GetGLValues(ITransaction owningTransaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | owningTransaction | The owning header transaction to return all gl postings for (including those from any sub-transactions too) |
Returns
Type | Description |
---|---|
IEnumerable<IGLPosting> | All gl posting records directly associated with the specified |
GetGLValuesAllocated(IGLPosting)
Returns all allocated gl posting values directly against the specified owningPosting
only.
Declaration
public IEnumerable<IGLPostingAllocated> GetGLValuesAllocated(IGLPosting owningPosting)
Parameters
Type | Name | Description |
---|---|---|
IGLPosting | owningPosting | The gl posting to return all direct allocated gl postings for (those with GLPostingID set to this) |
Returns
Type | Description |
---|---|
IEnumerable<IGLPostingAllocated> | All allocated gl posting values directly against the specified |
GetLocalCurrency(ITransaction)
Declaration
public ICurrency GetLocalCurrency(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran |
Returns
Type | Description |
---|---|
ICurrency |
GetPath(ITransaction)
Declaration
public Guid? GetPath(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran |
Returns
Type | Description |
---|---|
Guid? |
GetPath(Guid)
Returns the loaded path from the specified pathID
Declaration
public IEnumerable<IPathInfo> GetPath(Guid pathID)
Parameters
Type | Name | Description |
---|---|---|
Guid | pathID | The id of the path to return |
Returns
Type | Description |
---|---|
IEnumerable<IPathInfo> | The loaded path from the specified |
GetPivotedTransactionValues(ITransaction)
Returns a list of bound pivotted helper classes for editing the transaction values in a pivotted fashion
For ui use only
Declaration
public IEnumerable<PivotedTransactionValue> GetPivotedTransactionValues(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran |
Returns
Type | Description |
---|---|
IEnumerable<PivotedTransactionValue> |
GetReportingCurrency(ITransaction)
Declaration
public ICurrency GetReportingCurrency(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran |
Returns
Type | Description |
---|---|
ICurrency |
GetRounder(ITransaction)
A calculator for rounding a given number to a specified level
Declaration
public IRounder GetRounder(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran | The transaction the rounder is required for |
Returns
Type | Description |
---|---|
IRounder | A calculator for rounding a given number to a specified level |
GetTransaction(Guid)
Returns the transaction within this processor identified by the specified globally unique id
Declaration
public ITransaction GetTransaction(Guid id)
Parameters
Type | Name | Description |
---|---|---|
Guid | id | The id of a transaction within this processor |
Returns
Type | Description |
---|---|
ITransaction | The transaction within this processor identified by the specified globally unique id |
GetTransactionCodeValueTypes(ITransaction)
Returns all the values being stored against the specified transaction
(and thus its
sub-transactions too)
Transactions are configured to stored different values against them according to the transaction code.
This returns a list of transaction code settings and associated transaction valuesDeclaration
public IEnumerable<(ITransactionCodeValue CodeValue, ITransactionTypeValue ValueDef)> GetTransactionCodeValueTypes(ITransaction transaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | The transaction to return the values being stored against it |
Returns
Type | Description |
---|---|
IEnumerable<(ITransactionCodeValue CodeValue, ITransactionTypeValue ValueDef)> | All the values being stored against the specified |
GetTransactionSet(ITransaction)
Returns all transactions in a set that the specified transaction
is a member of
A set defines a header transaction and sub-transactions that have their ParentTransactionID set to the header transaction
Providing the header transaction or a sub-transaction will return the header and all sub-transactionsDeclaration
public IEnumerable<ITransaction> GetTransactionSet(ITransaction transaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | A transaction in the set (either header or sub-transaction) |
Returns
Type | Description |
---|---|
IEnumerable<ITransaction> | All transactions in a set that the specified |
GetTransactionSetting(ITransaction)
Retrieves a loaded associated transaction setting entity against the specified transaction
Transaction settings are linked to through SettingsID and implement IHasTransactionSetting
Declaration
public IBaseEntity GetTransactionSetting(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran | The transaction to retrieve its associated settings entity from |
Returns
Type | Description |
---|---|
IBaseEntity | The already loaded transaction setting entity for this transaction |
GetTransactionValues(ITransaction)
Returns all sub-transactions that have the specified owningTransaction
as their
ParentTransactionID along with the owning transaction itself
Declaration
public IEnumerable<ITransaction> GetTransactionValues(ITransaction owningTransaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | owningTransaction | The owning header transaction to return all sub-transactions of |
Returns
Type | Description |
---|---|
IEnumerable<ITransaction> | All sub-transactions that have the specified |
GetTransactionValuesAllocated(ITransaction)
Returns all allocated transaction values against the specified owningTransaction
only.
Declaration
public IEnumerable<ITransactionAllocated> GetTransactionValuesAllocated(ITransaction owningTransaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | owningTransaction | The transaction to return all direct allocated transactions for (those with ParentTransactionID set to this) |
Returns
Type | Description |
---|---|
IEnumerable<ITransactionAllocated> | All allocated transaction values against the specified |
HasLoaderAttached()
Declaration
public bool HasLoaderAttached()
Returns
Type | Description |
---|---|
bool |
HasThisLoaderAttached(BulkProcessorLoader<ITransactionProcessor>)
Declaration
public bool HasThisLoaderAttached(BulkProcessorLoader<ITransactionProcessor> loader)
Parameters
Type | Name | Description |
---|---|---|
BulkProcessorLoader<ITransactionProcessor> | loader |
Returns
Type | Description |
---|---|
bool |
IncludeInBulk()
Declaration
public bool IncludeInBulk()
Returns
Type | Description |
---|---|
bool |
IsChangedItemPartOfDataSet(IBaseEntity)
This function returns true if the specified modified item belongs in this processor.
Non modified items will just automatically be loaded by the processor anyway, this is more to keep track of items as they are changed and should be added to the processor without having to reload
Declaration
public override bool IsChangedItemPartOfDataSet(IBaseEntity item)
Parameters
Type | Name | Description |
---|---|---|
IBaseEntity | item | The item to check if it belongs in this processor |
Returns
Type | Description |
---|---|
bool | True if the specified item belongs in this processor |
Overrides
IsLocked(IBaseEntity)
Indicates if this item is currently locked. True if status is finalized or cancelled. Can be changed by the user in the UI to modify finalized transactions which this will process as a cancel/correct
Declaration
public override bool IsLocked(IBaseEntity baseEntity)
Parameters
Type | Name | Description |
---|---|---|
IBaseEntity | baseEntity |
Returns
Type | Description |
---|---|
bool | true if it can be unlocked to enable updates, otherwise false |
Overrides
KeepTransactionDateConsistent()
Declaration
protected override bool KeepTransactionDateConsistent()
Returns
Type | Description |
---|---|
bool |
Overrides
Load()
A thread safe implementation to load all required data for the processor
Once completed Loaded should return true.
Declaration
public override Task Load()
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the load operation |
Overrides
Load(bool)
Declaration
public Task Load(bool loadAllPathInfo)
Parameters
Type | Name | Description |
---|---|---|
bool | loadAllPathInfo |
Returns
Type | Description |
---|---|
Task |
LoadAllPathInfos(bool)
Declaration
public Task LoadAllPathInfos(bool forcePaths)
Parameters
Type | Name | Description |
---|---|---|
bool | forcePaths |
Returns
Type | Description |
---|---|
Task |
LoadExtenders(ITransaction, bool)
Declaration
public Task LoadExtenders(ITransaction tran, bool forceReload)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran | |
bool | forceReload |
Returns
Type | Description |
---|---|
Task |
LoadPathInfo(ITransaction, bool)
Loads the allocation path information for the specified transaction according to the configuration of the associated transaction code
If dynamically allocating values out, the system will allocate the values across the path and create appropriate transaction allocation records for the breakdown (along with sub transactions and allocations if needed along the path)
Declaration
public Task LoadPathInfo(ITransaction tran, bool force)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran | The transaction to load the path allocation information for |
bool | force | Indicates the path should be reloaded even if it is already cached as dependant values may have changed such as the date |
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the operation |
LoadTransferInfo()
Declaration
public Task LoadTransferInfo()
Returns
Type | Description |
---|---|
Task |
MoveItemSequence(ITransaction, ITransaction)
Declaration
public void MoveItemSequence(ITransaction fromItem, ITransaction toItem)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | fromItem | |
ITransaction | toItem |
OnChanged(TransactionProcessorEventArgs)
Raises the OnTransactionChanged event with the specified arguments
Declaration
public void OnChanged(TransactionProcessorEventArgs args)
Parameters
Type | Name | Description |
---|---|---|
TransactionProcessorEventArgs | args | The arguments for the OnTransactionChanged event |
OnLoadTransactionCodeInfo(ITransaction, bool)
Loads all the associated transaction code configuration for the specified transaction
Declaration
public Task OnLoadTransactionCodeInfo(ITransaction transaction, bool changed)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | The transaction to load its associated transaction code configuration for, including any TransactionProcessorExtender required too |
bool | changed | Indicates the code has been changed, and thus all current values need to be reset to 0 |
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the operation |
ProcessExtender(ITransaction, IBaseEntity, string, bool, object[])
Executes all extenders (TransactionProcessorExtender) configured against the
ITransactionCode for the specified tran
Each extender is passed the name of the property that has changed so it can determine what, if any, processes need to be run
Declaration
public Task ProcessExtender(ITransaction tran, IBaseEntity changedItem, string propertyChangedName, bool ignoredByProcessor = false, object[] contextArgs = null)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran | The transaction that has a property changed and needs all extenders to respond to it |
IBaseEntity | changedItem | |
string | propertyChangedName | The name of the property that has changed |
bool | ignoredByProcessor | |
object[] | contextArgs |
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the operation |
ProcessOnDBSave()
Handles the status of the root transaction item, and all other transactional items in the processor
Also automatically handles cancelling, cancel/corrects, and automatically creating tasks to process the calculation on the service instead of in the save
Declaration
public override Task ProcessOnDBSave()
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the operation |
Overrides
ProcessTransaction()
Calculates the actual transaction work to be done during a IEntityUpdater.SaveChanges(System.Threading.CancellationToken, bool, System.Data.Common.DbTransaction) , called during ProcessOnDBSave()
Any created/updated/deleted items in this process should also be returned in subsequent calls to GetAllItemsInTransaction
Does nothing in base class, this should be overridden by any implementing processor ensuring the process is run during any saveDeclaration
public override Task ProcessTransaction()
Returns
Type | Description |
---|---|
Task |
Overrides
ProcessTransaction(ITransaction)
Processes a transaction - runs the rules of the transaction code.
Declaration
public Task ProcessTransaction(ITransaction tran)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | tran |
Returns
Type | Description |
---|---|
Task |
RegisterGLPosting(IGLPosting)
Declaration
public void RegisterGLPosting(IGLPosting posting)
Parameters
Type | Name | Description |
---|---|---|
IGLPosting | posting |
RegisterNewGLPosting(IGLPosting, ITransaction, ITransactionCodeGLEntry)
Registers a newly created Gl Posting record with the processor so it is correctly loaded, and so the processor can react to changes in the record's values
Declaration
public Task RegisterNewGLPosting(IGLPosting posting, ITransaction owningTransaction, ITransactionCodeGLEntry glEntry)
Parameters
Type | Name | Description |
---|---|---|
IGLPosting | posting | The gl posting to register with this processor |
ITransaction | owningTransaction | |
ITransactionCodeGLEntry | glEntry |
Returns
Type | Description |
---|---|
Task |
RegisterNewGLPostingAllocated(IGLPostingAllocated)
Registers a newly created Gl Posting Allocation record with the processor so it is correctly loaded, and so the processor can react to changes in the record's values
Declaration
public Task RegisterNewGLPostingAllocated(IGLPostingAllocated alloc)
Parameters
Type | Name | Description |
---|---|---|
IGLPostingAllocated | alloc | The gl posting allocation to register with this processor |
Returns
Type | Description |
---|---|
Task |
RegisterNewTransactionAllocated(ITransactionAllocated)
Registers a newly created Transaction Allocation record with the processor so it is correctly loaded, and so the processor can react to changes in the record's values
Declaration
public Task RegisterNewTransactionAllocated(ITransactionAllocated alloc)
Parameters
Type | Name | Description |
---|---|---|
ITransactionAllocated | alloc | The transaction allocation to register with this processor |
Returns
Type | Description |
---|---|
Task |
RegisterTransaction(ITransaction)
Registers a newly created Transaction record with the processor so it is correctly loaded, and so the processor can react to changes in the record's values
Declaration
public Task RegisterTransaction(ITransaction transaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | The transaction to register with this processor |
Returns
Type | Description |
---|---|
Task |
Reload()
Reloads the transaction.
Declaration
public Task Reload()
Returns
Type | Description |
---|---|
Task |
RemoveCodeValue(ITransaction, Guid)
Removes the specified transaction type value from the transaction. Possible if the transaction code allows manual alteration of the values stored against a transaction
Declaration
public Task RemoveCodeValue(ITransaction transaction, Guid tranTypeValueID)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | The transaction (and all associated sub-transactions) to remove the specified transaction type value from |
Guid | tranTypeValueID | The transaction type value to remove from the transaction |
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the operaion |
ResetTransactionCodeValueAmounts(ITransaction)
Declaration
public void ResetTransactionCodeValueAmounts(ITransaction transaction)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction |
SetLock(IBaseEntity, bool)
Sets the locked status IBaseEntity
Declaration
public override void SetLock(IBaseEntity baseEntity, bool value)
Parameters
Type | Name | Description |
---|---|---|
IBaseEntity | baseEntity | |
bool | value |
Overrides
SetStepChangeDate(DateTimeOffset?)
Declaration
public void SetStepChangeDate(DateTimeOffset? stepChangeDate)
Parameters
Type | Name | Description |
---|---|---|
DateTimeOffset? | stepChangeDate |
ThreadSafeAttach(BulkProcessorLoader<ITransactionProcessor>)
Declaration
public void ThreadSafeAttach(BulkProcessorLoader<ITransactionProcessor> loader)
Parameters
Type | Name | Description |
---|---|---|
BulkProcessorLoader<ITransactionProcessor> | loader |
UpdateCalculatedProperties(ITransactionalEntity)
Updates calculated properties on the entity (and presumably sub affected entities) such as financial date
Declaration
protected override Task UpdateCalculatedProperties(ITransactionalEntity tranEntity)
Parameters
Type | Name | Description |
---|---|---|
ITransactionalEntity | tranEntity |
Returns
Type | Description |
---|---|
Task |
Overrides
UpdateFinacialDate(ITransactionalEntity)
Updates the financial date to the correct one based on the transaction date, for the specified transactional entity.
By default this only works with ITransaction and IGLPosting
Can override to update financial dates on other items in the processorDeclaration
public override Task UpdateFinacialDate(ITransactionalEntity tranEntity)
Parameters
Type | Name | Description |
---|---|---|
ITransactionalEntity | tranEntity |
Returns
Type | Description |
---|---|
Task |
Overrides
UpdateRounders(ITransaction, bool)
Updates the stored rounders in the processors for the specified transaction and all its sub-transactions
Declaration
public Task UpdateRounders(ITransaction transaction, bool updateLevel)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | The transaction (and its sub-transactions) to update all the rounders for |
bool | updateLevel |
Returns
Type | Description |
---|---|
Task | A task indicating the completion of the operation |
UpdateTransactionPathSplit(ITransaction, IAllocationPath)
Declaration
public Task UpdateTransactionPathSplit(ITransaction transaction, IAllocationPath path)
Parameters
Type | Name | Description |
---|---|---|
ITransaction | transaction | |
IAllocationPath | path |
Returns
Type | Description |
---|---|
Task |
Validate()
Performs custom validation to validate this processor and all transactional entities within it
Throws an error for any validation failure
Declaration
public override Task Validate()
Returns
Type | Description |
---|---|
Task | A task indicating the completion of this operation |
Overrides
Events
OnTransactionChanged
An event indicating the processor has changed the specified value against records within the processor
Declaration
public event TransactionProcessorEventHandler OnTransactionChanged
Event Type
Type | Description |
---|---|
TransactionProcessorEventHandler |