Search Results for

    Show / Hide Table of Contents

    Interface IBlendTransactionProcessor

    The processor responsible for processing a blended transaction calculation

    See https://help.lemonedge.com/blend-transactions/ for more information

    Inherited Members
    IBaseDataSetProcessorWithDBSave.ProcessOnDBSave()
    IBaseDataSetProcessorWithDBSave.RollbackChanges()
    IBaseDataSetProcessorWithDBSave.SaveProcessed
    IBaseDataSetProcessorWithDBSave.Order
    IBaseDataSetProcessor.IsChangedItemPartOfDataSet(IBaseEntity)
    IBaseDataSetProcessor.AddToDataSetToProcess(IBaseEntity, EntityOperation)
    IBaseDataSetProcessor.Load()
    IBaseDataSetProcessor.IgnoreEvents
    IBaseDataSetProcessor.Loaded
    ITaskProcessor.Init(ITaskRunner, ServerTaskParameter)
    ITaskProcessor.ProcessTask(CancellationToken)
    IProcessor.Updater
    IProcessor.Cache
    IProcessor.User
    IProcessor.Reporter
    IDisposable.Dispose()
    ILockable.CanWrite(IBaseEntity)
    ILockable.IsLocked(IBaseEntity)
    ILockable.SetLock(IBaseEntity, bool)
    ILockable.CanLock
    Namespace: LemonEdge.API.Core.FinancialServices.Processors.Transactional
    Assembly: LemonEdge.API.Core.FinancialServices.dll
    Syntax
    public interface IBlendTransactionProcessor : IBaseDataSetProcessorWithDBSave, IBaseDataSetProcessor, ITaskProcessor, IProcessor, IDisposable, ILockable

    Properties

    BlendTransaction

    The blended transaction that is being processed by this processor

    Declaration
    IBlendTransaction BlendTransaction { get; }
    Property Value
    Type Description
    IBlendTransaction

    BlendedTransactions

    A list of all the ITransaction transactions created automatically by this Blended Transaction

    Declaration
    ITransactionProcessor BlendedTransactions { get; }
    Property Value
    Type Description
    ITransactionProcessor

    BlendingTranInstrumentValues

    The instrument values the BlendingTransaction configuration can use

    Declaration
    IEnumerable<IBlendingTransactionInstrumentValue> BlendingTranInstrumentValues { get; }
    Property Value
    Type Description
    IEnumerable<IBlendingTransactionInstrumentValue>

    BlendingTranNewValueAggregates

    The aggregate values for new transaction values the BlendingTransaction configuration can use

    Declaration
    IEnumerable<IBlendingTransactionNewValueAggregate> BlendingTranNewValueAggregates { get; }
    Property Value
    Type Description
    IEnumerable<IBlendingTransactionNewValueAggregate>

    BlendingTranNewValueAllocations

    The allocations to use for new transaction values the BlendingTransaction configuration can use

    Declaration
    IEnumerable<IBlendingTransactionNewValueAllocation> BlendingTranNewValueAllocations { get; }
    Property Value
    Type Description
    IEnumerable<IBlendingTransactionNewValueAllocation>

    BlendingTranNewValues

    The new transaction values the BlendingTransaction configuration can use

    Declaration
    IEnumerable<IBlendingTransactionNewValue> BlendingTranNewValues { get; }
    Property Value
    Type Description
    IEnumerable<IBlendingTransactionNewValue>

    BlendingTransaction

    The blending transaction holding the configuration and rules for how this blended transaction should be processed

    Declaration
    IBlendingTransaction BlendingTransaction { get; }
    Property Value
    Type Description
    IBlendingTransaction

    InstrumentSets

    The set of blended transaction instrument sets dictating what instruments/entities to create transactions against

    Declaration
    IEnumerable<IBlendTransactionInstrumentSet> InstrumentSets { get; }
    Property Value
    Type Description
    IEnumerable<IBlendTransactionInstrumentSet>

    Methods

    GetBlendTransaction(IBlendingTransactionNewValue, IBlendTransactionInstrumentSet, TransactionsHelper, Guid?, Guid?, Guid?, DateTimeOffset, bool)

    Retrieves, or creates, the transaction for the specified target values that the blended transaction should automatically be creating

    Declaration
    Task<ITransaction> GetBlendTransaction(IBlendingTransactionNewValue transactionToCreate, IBlendTransactionInstrumentSet insSet, TransactionsHelper helper, Guid? forInstrumentID, Guid? forEntityID, Guid? forPathID, DateTimeOffset forEffectiveDate, bool forceNew)
    Parameters
    Type Name Description
    IBlendingTransactionNewValue transactionToCreate

    The defined transaction to create

    IBlendTransactionInstrumentSet insSet

    The blended transaction target this transaction is being created for

    TransactionsHelper helper

    A transactions helper class for updating the transaction configuration

    Guid? forInstrumentID

    An optional instrument this transaction is being created against. If null must supply a forPathID and forEntityID

    Guid? forEntityID

    An optional entity this transaction is being created against

    Guid? forPathID

    An optional path this transaction is being created against

    DateTimeOffset forEffectiveDate

    The transaction date for this transaction. Typically the TransactionDate of the IBlendTransaction unless RepeatDatesEvery is being used

    bool forceNew
    Returns
    Type Description
    Task<ITransaction>

    The transaction for the specified target values that the blended transaction should automatically be creating

    GetDatesForAlgorithmRun()

    Returns a list of dates that should be used for creating these transactions.

    Depends on the RepeatDatesEvery setting. If None then will just return the IBlendTransaction StartDate, TransactionDate and FinancialDate

    If a repetition is configured then it will create a list of dates incrementing from the startdate by the RepeatDatesEveryInterval and RepeatDatesEvery up to the IBlendTransaction TransactionDate
    Declaration
    IEnumerable<(DateTimeOffset? StartDate, DateTimeOffset EffectiveDate, DateTimeOffset FinancialDate)> GetDatesForAlgorithmRun()
    Returns
    Type Description
    IEnumerable<(DateTimeOffset? StartDate, DateTimeOffset EffectiveDate, DateTimeOffset FinancialDate)>

    A list of dates that should be used for creating these transactions.

    GetInstrumentsToCreateTransactionsAgainst(IBlendingTransactionNewValue, IBlendTransactionInstrumentSet, DateTimeOffset?, DateTimeOffset, DateTimeOffset)

    Returns a class indicating how the specified blending transaction to create, should be created for the specified blended transaction instrument source/targets and the specified dates

    Declaration
    Task<BlendTransactionAllocation> GetInstrumentsToCreateTransactionsAgainst(IBlendingTransactionNewValue transactionToCreate, IBlendTransactionInstrumentSet instrumentSet, DateTimeOffset? startDate, DateTimeOffset effectiveDate, DateTimeOffset financialDate)
    Parameters
    Type Name Description
    IBlendingTransactionNewValue transactionToCreate

    The configuration against the IBlendingTransaction indicating what type of transaction to create

    IBlendTransactionInstrumentSet instrumentSet

    The instrument set of source/targets for the transaction that are configured against thie IBlendTransaction

    DateTimeOffset? startDate

    The optional start date to use for determining values that are applicable for this new transaction

    DateTimeOffset effectiveDate

    The effective date for the transaction, provided from Transaction date of IBlendTransaction, or incremented from it if RepeatDatesEvery is used

    DateTimeOffset financialDate

    The financial date for the transaction, provided from FinancialDate, or incremented from it if RepeatDatesEvery is used

    Returns
    Type Description
    Task<BlendTransactionAllocation>

    A blend Transaction Allocation detailing how to create the transaction with a list of target allocations

    GetSourceTransaction(IBlendTransactionInstrumentSet)

    Returns the source transaction from the blended transaction instrument sets ( SourceTransactionID) if one is setup

    Declaration
    Task<ITransaction> GetSourceTransaction(IBlendTransactionInstrumentSet instSet)
    Parameters
    Type Name Description
    IBlendTransactionInstrumentSet instSet

    The instrument set against the blended transaction to return the source transaction for

    Returns
    Type Description
    Task<ITransaction>

    The source transaction from the blended transaction instrument sets ( SourceTransactionID) if one is setup

    GetValueTotals(BlendTransactionAllocation, IBlendingTransactionNewValue, IBlendTransactionInstrumentSet, DateTimeOffset?, DateTimeOffset, DateTimeOffset)

    Returns the collection of values that should be allocated to the new transaction by instrument

    Declaration
    Task<IEnumerable<BlendTransactionValueTotals>> GetValueTotals(BlendTransactionAllocation targets, IBlendingTransactionNewValue transactionToCreate, IBlendTransactionInstrumentSet instrumentSet, DateTimeOffset? startDate, DateTimeOffset effectiveDate, DateTimeOffset financialDate)
    Parameters
    Type Name Description
    BlendTransactionAllocation targets

    A list of the targets to create the transactions against including their allocation splits. Acquired from GetInstrumentsToCreateTransactionsAgainst(IBlendingTransactionNewValue, IBlendTransactionInstrumentSet, DateTimeOffset?, DateTimeOffset, DateTimeOffset)

    IBlendingTransactionNewValue transactionToCreate

    The configured transaction to create from the IBlendingTransactionNewValue

    IBlendTransactionInstrumentSet instrumentSet

    The blended transaction instrument set that we are creating transaction for. Should be the same that GetInstrumentsToCreateTransactionsAgainst(IBlendingTransactionNewValue, IBlendTransactionInstrumentSet, DateTimeOffset?, DateTimeOffset, DateTimeOffset) was called with

    DateTimeOffset? startDate

    The optional start date to filter the transactions to aggregate by

    DateTimeOffset effectiveDate

    The transaction date transactions should be filtered up to

    DateTimeOffset financialDate

    The financial date transactions should be filtered up to

    Returns
    Type Description
    Task<IEnumerable<BlendTransactionValueTotals>>

    A collection of values that should be allocated to the new transaction by instrument

    GetValueTotals(Guid, IBlendingTransactionInstrumentValue, bool, DateTimeOffset?, DateTimeOffset, DateTimeOffset)

    Returns the aggregate values for the specified ITransactionAggregator and ITransactionMatcher defined against the forValue.

    The system aggregates these values for the specified instruments and dates, and returns them optionally byInstrument

    Declaration
    Task<IEnumerable<ITransactionAggregateResult>> GetValueTotals(Guid instrumentSetID, IBlendingTransactionInstrumentValue forValue, bool byInstrument, DateTimeOffset? startDate, DateTimeOffset effectiveDate, DateTimeOffset financialDate)
    Parameters
    Type Name Description
    Guid instrumentSetID

    The set of instruments that all transactions should be aggregated against

    IBlendingTransactionInstrumentValue forValue

    The settings of ITransactionMatcher and ITransactionAggregator that define exactly what transactions and values (including gl values) to aggregate

    bool byInstrument

    Indicates the results should be broken down by the instrument the transactions are against

    DateTimeOffset? startDate

    The optional start date to filter the transactions to aggregate by

    DateTimeOffset effectiveDate

    The transaction date transactions should be filtered up to

    DateTimeOffset financialDate

    The financial date transactions should be filtered up to

    Returns
    Type Description
    Task<IEnumerable<ITransactionAggregateResult>>

    A list of aggregate transaction totals according to the specified instruments, dates and transaction matcher/aggregators

    GetValueTotals(Guid, ITransactionTypeValue, bool, DateTimeOffset?, DateTimeOffset, DateTimeOffset)

    Returns the aggregate values for the specified ITransactionTypeValue for the specified instruments and dates, and returns them optionally byInstrument

    Declaration
    Task<IEnumerable<ITransactionAggregateResult>> GetValueTotals(Guid instrumentSetID, ITransactionTypeValue forValue, bool byInstrument, DateTimeOffset? startDate, DateTimeOffset effectiveDate, DateTimeOffset financialDate)
    Parameters
    Type Name Description
    Guid instrumentSetID

    The set of instruments that all transactions should be aggregated against

    ITransactionTypeValue forValue

    The specific transaction value to aggregate

    bool byInstrument

    Indicates the results should be broken down by the instrument the transactions are against

    DateTimeOffset? startDate

    The optional start date to filter the transactions to aggregate by

    DateTimeOffset effectiveDate

    The transaction date transactions should be filtered up to

    DateTimeOffset financialDate

    The financial date transactions should be filtered up to

    Returns
    Type Description
    Task<IEnumerable<ITransactionAggregateResult>>

    A list of aggregate transaction totals according to the specified instruments, dates and transaction type value

    LoadBlendingAlgorithm(bool)

    Loads the blending transaction algorithm definition for this processor

    Declaration
    Task LoadBlendingAlgorithm(bool force)
    Parameters
    Type Name Description
    bool force

    Indicates if the definition should be loaded even if it already has been (incase changes have been made to the defintion)

    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    LoadLight()

    Loads the configuration for this processor, but not the transactions and everything to calculate the algorithm

    This is all that is needed to use the processor in the ui

    Declaration
    Task LoadLight()
    Returns
    Type Description
    Task

    A task indicating the completion of the operation

    RegisterDeleteInstrumentSet(IBlendTransactionInstrumentSet)

    Removes a blended transaction instrument set, containing a set of source/target items for transactions to be created against, from this processor

    Declaration
    void RegisterDeleteInstrumentSet(IBlendTransactionInstrumentSet set)
    Parameters
    Type Name Description
    IBlendTransactionInstrumentSet set

    The blended transaction instrument set to remove from this processor and stop listening to any changes against it

    RegisterNewInstrumentSet(IBlendTransactionInstrumentSet)

    Registers a new blended transaction instrument set containing a set of source/target items for transactions to be created against.

    Declaration
    void RegisterNewInstrumentSet(IBlendTransactionInstrumentSet set)
    Parameters
    Type Name Description
    IBlendTransactionInstrumentSet set

    The blended transaction instrument set to register with this processor and listent for changes from

    Events

    OnBlendTransactionChanged

    The event notifying listeners that changes have been made to the processor

    Declaration
    event BlendTransactionProcessorEventHandler OnBlendTransactionChanged
    Event Type
    Type Description
    BlendTransactionProcessorEventHandler

    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.