BusinessProcessor
Overview
When a Data Abstract service UpdateData method is called, each of the deltas sent by the client are handed to a specific Business Processor (either auto created or explicitly dropped on the service at design time), which executes the appropriate INSERT, DELETE and UPDATE SQL commands for each of the changes related to one data table.
You can specify which data table a Business Processor refers to by setting the property ReferencedDataTable.
Business Processors can either auto generate the SQL used by such commands (see properties AutoGenerateInsert , AutoGenerateDelete and AutoGenerateUpdate) or reference commands you define in a Schema (see properties InsertCommandName, DeleteCommandName and UpdateCommandName).
Once a delta change has been processed, the contents of the row can be re-read through the use of a query identified by the RefreshDataTableName. This is useful whenever a trigger modifies the record in the background and you want to avoid a second round trip to the server to get an exact snapshot of the data. The values returned by the refresh query are merged in the delta and sent back to the client during the same UpdateData call.
In order to control what happens before and after the processing of each delta or their changes, use the many events provided by the Business Processor class.
In summary, it allows you to define the business logic surrounding the processing of delta changes, before and after they get applied to the database.
Location
- Reference: RemObjects.DataAbstract.Server.dll
- Namespace: RemObjects.DataAbstract.Server
- Platforms: .NET Core, .NET Framework, .NET Standard
- Ancestry: BaseComponent | BusinessProcessor
constructor
Creates a new instance of the BusinessProcessor class.
constructor
BusinessProcessor()
init()
Sub New()
constructor (IContainer)
Creates a new instance of the BusinessProcessor class and adds it to the provided components container.
constructor(container: IContainer)
BusinessProcessor(IContainer container)
init(_ container: IContainer)
Sub New(container As IContainer)
Parameters:
- container: Components container
AfterExecuteCommand
Fires after a command was executed.
event AfterExecuteCommand: ExecuteCommandHandler
delegate: method AfterExecuteCommand(sender: BusinessProcessor; e: ExecuteCommandArgs)
delegate ExecuteCommandHandler AfterExecuteCommand()
delegate: void AfterExecuteCommand(BusinessProcessor sender, ExecuteCommandArgs e)
__event ExecuteCommandHandler: AfterExecuteCommand!
delegate: func AfterExecuteCommand(_ sender: BusinessProcessor, _ e: ExecuteCommandArgs)
Event AfterExecuteCommand As ExecuteCommandHandler
delegate: Sub AfterExecuteCommand(sender As BusinessProcessor, e As ExecuteCommandArgs)
AfterProcessChange
Occurs after a delta change has been successfully processed. A common use of this event could be to store information about the updates in a log table.
event AfterProcessChange: EventHandler<DeltaChangeEventArgs>
delegate EventHandler<DeltaChangeEventArgs> AfterProcessChange()
__event EventHandler<DeltaChangeEventArgs>: AfterProcessChange!
Event AfterProcessChange As EventHandler<DeltaChangeEventArgs>
AfterProcessDelta
Occurs after a complete delta has been processed. A common use of this event could be to store information about the updates in a log table.
event AfterProcessDelta: EventHandler<DeltaEventArgs>
delegate EventHandler<DeltaEventArgs> AfterProcessDelta()
__event EventHandler<DeltaEventArgs>: AfterProcessDelta!
Event AfterProcessDelta As EventHandler<DeltaEventArgs>
AfterSqlGeneration
Occurs after the business processor auto generates the SQL text used to process a specific type of change (insert, delete or update). The parameters in the event arguments provide you with all the information you need to understand what type of SQL is being generated and, by modifying the SQLStatement property, allow you to replace the auto generated SQL. A common use of this event could be to track the SQL being executed and log it in a text file for debugging purposes.
event AfterSqlGeneration: SqlGenerationEventHandler
delegate: method AfterSqlGeneration(sender: BusinessProcessor; e: SqlGenerationEventArgs)
delegate SqlGenerationEventHandler AfterSqlGeneration()
delegate: void AfterSqlGeneration(BusinessProcessor sender, SqlGenerationEventArgs e)
__event SqlGenerationEventHandler: AfterSqlGeneration!
delegate: func AfterSqlGeneration(_ sender: BusinessProcessor, _ e: SqlGenerationEventArgs)
Event AfterSqlGeneration As SqlGenerationEventHandler
delegate: Sub AfterSqlGeneration(sender As BusinessProcessor, e As SqlGenerationEventArgs)
AllowedChangeTypes
property AllowedChangeTypes: set of ChangeType read write;
set of ChangeType AllowedChangeTypes { get; set; }
var AllowedChangeTypes: set of ChangeType { get{} set{} }
Property AllowedChangeTypes() As set of ChangeType
AssignChangeValuesToCommand protected
Sets the command parameters values. Source values are taken from the provided DeltaChange instance.
method AssignChangeValuesToCommand(connection: IAbstractConnection; command: IDbCommand; mappings: ParamMappingCollection; delta: DeltaChange)
void AssignChangeValuesToCommand(IAbstractConnection connection, IDbCommand command, ParamMappingCollection mappings, DeltaChange delta)
func AssignChangeValuesToCommand(_ connection: IAbstractConnection, _ command: IDbCommand, _ mappings: ParamMappingCollection, _ delta: DeltaChange)
Sub AssignChangeValuesToCommand(connection As IAbstractConnection, command As IDbCommand, mappings As ParamMappingCollection, delta As DeltaChange)
Parameters:
- connection: Database connection
- command: Database command
- mappings: Parameter mapping
- delta: DeltaChange instance that will provide parameter values
AutoGenerateDelete
Indicates if the SQL text for the delete command should be auto generated. If you want to use a specific SQL command defined in a Schema instead, set the DeleteCommandName property.
// .NET Core, .NET Standard
property AutoGenerateDelete: Boolean read write;
// .NET Framework
[DefaultValue(true)]
property AutoGenerateDelete: Boolean read write;
// .NET Core, .NET Standard
Boolean AutoGenerateDelete { get; set; }
// .NET Framework
[DefaultValue(true)]
Boolean AutoGenerateDelete { get; set; }
// .NET Core, .NET Standard
var AutoGenerateDelete: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(true)
var AutoGenerateDelete: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property AutoGenerateDelete() As Boolean
// .NET Framework
<DefaultValue(true)>
Property AutoGenerateDelete() As Boolean
AutoGenerateInsert
Indicates if the SQL text for the insert command should be auto generated. If you want to use a specific SQL command defined in a Schema instead, set the InsertCommandName property.
// .NET Core, .NET Standard
property AutoGenerateInsert: Boolean read write;
// .NET Framework
[DefaultValue(true)]
property AutoGenerateInsert: Boolean read write;
// .NET Core, .NET Standard
Boolean AutoGenerateInsert { get; set; }
// .NET Framework
[DefaultValue(true)]
Boolean AutoGenerateInsert { get; set; }
// .NET Core, .NET Standard
var AutoGenerateInsert: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(true)
var AutoGenerateInsert: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property AutoGenerateInsert() As Boolean
// .NET Framework
<DefaultValue(true)>
Property AutoGenerateInsert() As Boolean
AutoGenerateRefresh
Indicates if the SQL text for the refresh data table should be auto generated. If you want to use a specific data table defined in a Schema instead, set the RefreshDataTableName property.
// .NET Core, .NET Standard
property AutoGenerateRefresh: Boolean read write;
// .NET Framework
[DefaultValue(true)]
property AutoGenerateRefresh: Boolean read write;
// .NET Core, .NET Standard
Boolean AutoGenerateRefresh { get; set; }
// .NET Framework
[DefaultValue(true)]
Boolean AutoGenerateRefresh { get; set; }
// .NET Core, .NET Standard
var AutoGenerateRefresh: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(true)
var AutoGenerateRefresh: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property AutoGenerateRefresh() As Boolean
// .NET Framework
<DefaultValue(true)>
Property AutoGenerateRefresh() As Boolean
AutoGenerateUpdate
Indicates if the SQL text for the update command should be auto generated. If you want to use a specific SQL command defined in a Schema instead, set the UpdateCommandName property.
// .NET Core, .NET Standard
property AutoGenerateUpdate: Boolean read write;
// .NET Framework
[DefaultValue(true)]
property AutoGenerateUpdate: Boolean read write;
// .NET Core, .NET Standard
Boolean AutoGenerateUpdate { get; set; }
// .NET Framework
[DefaultValue(true)]
Boolean AutoGenerateUpdate { get; set; }
// .NET Core, .NET Standard
var AutoGenerateUpdate: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(true)
var AutoGenerateUpdate: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property AutoGenerateUpdate() As Boolean
// .NET Framework
<DefaultValue(true)>
Property AutoGenerateUpdate() As Boolean
BeforeExecuteCommand
event BeforeExecuteCommand: ExecuteCommandHandler
delegate: method BeforeExecuteCommand(sender: BusinessProcessor; e: ExecuteCommandArgs)
delegate ExecuteCommandHandler BeforeExecuteCommand()
delegate: void BeforeExecuteCommand(BusinessProcessor sender, ExecuteCommandArgs e)
__event ExecuteCommandHandler: BeforeExecuteCommand!
delegate: func BeforeExecuteCommand(_ sender: BusinessProcessor, _ e: ExecuteCommandArgs)
Event BeforeExecuteCommand As ExecuteCommandHandler
delegate: Sub BeforeExecuteCommand(sender As BusinessProcessor, e As ExecuteCommandArgs)
BeforeGetTableData
event BeforeGetTableData: BeforeGetTableDataEventHandler
delegate: method BeforeGetTableData(sender: BusinessProcessor; e: BeforeGetTableDataEventArgs)
delegate BeforeGetTableDataEventHandler BeforeGetTableData()
delegate: void BeforeGetTableData(BusinessProcessor sender, BeforeGetTableDataEventArgs e)
__event BeforeGetTableDataEventHandler: BeforeGetTableData!
delegate: func BeforeGetTableData(_ sender: BusinessProcessor, _ e: BeforeGetTableDataEventArgs)
Event BeforeGetTableData As BeforeGetTableDataEventHandler
delegate: Sub BeforeGetTableData(sender As BusinessProcessor, e As BeforeGetTableDataEventArgs)
BeforeProcessChange
Occurs before a delta change is about to be processed. A common use of this event could be to abort an update if the user sending the delta doesn't have enough privileges to do so. To abort the processing of a delta change, simply fire an exception in this event handler.
event BeforeProcessChange: EventHandler<DeltaChangeEventArgs>
delegate EventHandler<DeltaChangeEventArgs> BeforeProcessChange()
__event EventHandler<DeltaChangeEventArgs>: BeforeProcessChange!
Event BeforeProcessChange As EventHandler<DeltaChangeEventArgs>
BeforeProcessDelta
Occurs before a delta is about to be processed. A common use of this event could be to log information about the delta in a log table or to forbid a specific user to modify the data table referenced by the ReferencedDataTable property.
event BeforeProcessDelta: EventHandler<DeltaEventArgs>
delegate EventHandler<DeltaEventArgs> BeforeProcessDelta()
__event EventHandler<DeltaEventArgs>: BeforeProcessDelta!
Event BeforeProcessDelta As EventHandler<DeltaEventArgs>
CreateParameterMappings protected
method CreateParameterMappings(connection: IAbstractConnection; table: SchemaDataTable; command: IDbCommand; parameters: SchemaParameterCollection; delta: Delta; fields: SchemaColumnMappingCollection): ParamMappingCollection
ParamMappingCollection CreateParameterMappings(IAbstractConnection connection, SchemaDataTable table, IDbCommand command, SchemaParameterCollection parameters, Delta delta, SchemaColumnMappingCollection fields)
func CreateParameterMappings(_ connection: IAbstractConnection, _ table: SchemaDataTable, _ command: IDbCommand, _ parameters: SchemaParameterCollection, _ delta: Delta, _ fields: SchemaColumnMappingCollection) -> ParamMappingCollection
Function CreateParameterMappings(connection As IAbstractConnection, table As SchemaDataTable, command As IDbCommand, parameters As SchemaParameterCollection, delta As Delta, fields As SchemaColumnMappingCollection) As ParamMappingCollection
Parameters:
- connection:
- table:
- command:
- parameters:
- delta:
- fields:
CreateRefreshCommand protected
method CreateRefreshCommand(connection: IAbstractConnection; table: SchemaDataTable; updateMode: UpdateMode; fields: array of String; out parameters: SchemaParameterCollection): IDbCommand
IDbCommand CreateRefreshCommand(IAbstractConnection connection, SchemaDataTable table, UpdateMode updateMode, String[] fields, out SchemaParameterCollection parameters)
func CreateRefreshCommand(_ connection: IAbstractConnection, _ table: SchemaDataTable, _ updateMode: UpdateMode, _ fields: String..., _ parameters: inout SchemaParameterCollection) -> IDbCommand
Function CreateRefreshCommand(connection As IAbstractConnection, table As SchemaDataTable, updateMode As UpdateMode, fields As String(), <OutAttribute> ByRef parameters As SchemaParameterCollection) As IDbCommand
Parameters:
- connection:
- table:
- updateMode:
- fields:
- parameters:
CreateUpdateCommand protected
method CreateUpdateCommand(connection: IAbstractConnection; table: SchemaDataTable; changeType: ChangeType; change: DeltaChange; updateMode: UpdateMode; columnMapping: SchemaColumnMappingCollection; out parameters: SchemaParameterCollection): IDbCommand
IDbCommand CreateUpdateCommand(IAbstractConnection connection, SchemaDataTable table, ChangeType changeType, DeltaChange change, UpdateMode updateMode, SchemaColumnMappingCollection columnMapping, out SchemaParameterCollection parameters)
func CreateUpdateCommand(_ connection: IAbstractConnection, _ table: SchemaDataTable, _ changeType: ChangeType, _ change: DeltaChange, _ updateMode: UpdateMode, _ columnMapping: SchemaColumnMappingCollection, _ parameters: inout SchemaParameterCollection) -> IDbCommand
Function CreateUpdateCommand(connection As IAbstractConnection, table As SchemaDataTable, changeType As ChangeType, change As DeltaChange, updateMode As UpdateMode, columnMapping As SchemaColumnMappingCollection, <OutAttribute> ByRef parameters As SchemaParameterCollection) As IDbCommand
Parameters:
- connection:
- table:
- changeType:
- change:
- updateMode:
- columnMapping:
- parameters:
DeleteCommandName
Identifies the name of the Schema command to be be executed when applying the deletes of a delta.
property DeleteCommandName: String read write;
// .NET Core, .NET Standard
String DeleteCommandName { get; set; }
// .NET Framework
[DefaultValue(\"\")]
String DeleteCommandName { get; set; }
// .NET Core, .NET Standard
var DeleteCommandName: String { get{} set{} }
// .NET Framework
@DefaultValue(\"\")
var DeleteCommandName: String { get{} set{} }
// .NET Core, .NET Standard
Property DeleteCommandName() As String
// .NET Framework
<DefaultValue(\"\")>
Property DeleteCommandName() As String
IgnoreAffectedRows
// .NET Core, .NET Standard
property IgnoreAffectedRows: Boolean read write;
// .NET Framework
[DefaultValue(false)]
property IgnoreAffectedRows: Boolean read write;
// .NET Core, .NET Standard
Boolean IgnoreAffectedRows { get; set; }
// .NET Framework
[DefaultValue(false)]
Boolean IgnoreAffectedRows { get; set; }
// .NET Core, .NET Standard
var IgnoreAffectedRows: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(false)
var IgnoreAffectedRows: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property IgnoreAffectedRows() As Boolean
// .NET Framework
<DefaultValue(false)>
Property IgnoreAffectedRows() As Boolean
InsertCommandName
Identifies the name of the schema command to be be executed when applying the inserts of a delta.
property InsertCommandName: String read write;
// .NET Core, .NET Standard
String InsertCommandName { get; set; }
// .NET Framework
[DefaultValue(\"\")]
String InsertCommandName { get; set; }
// .NET Core, .NET Standard
var InsertCommandName: String { get{} set{} }
// .NET Framework
@DefaultValue(\"\")
var InsertCommandName: String { get{} set{} }
// .NET Core, .NET Standard
Property InsertCommandName() As String
// .NET Framework
<DefaultValue(\"\")>
Property InsertCommandName() As String
PrepareCommands
Indicates if the commands executed when processing delta changes should be prepared before being executed.
// .NET Core, .NET Standard
property PrepareCommands: Boolean read write;
// .NET Framework
[DefaultValue(true)]
property PrepareCommands: Boolean read write;
// .NET Core, .NET Standard
Boolean PrepareCommands { get; set; }
// .NET Framework
[DefaultValue(true)]
Boolean PrepareCommands { get; set; }
// .NET Core, .NET Standard
var PrepareCommands: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(true)
var PrepareCommands: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property PrepareCommands() As Boolean
// .NET Framework
<DefaultValue(true)>
Property PrepareCommands() As Boolean
ProcessDelta
Performs the processing of the passed delta and applies the changes to the database.
method ProcessDelta(connection: IAbstractConnection; schema: ServiceSchema; delta: Delta; allowInsert: Boolean; allowUpdate: Boolean; allowDelete: Boolean)
void ProcessDelta(IAbstractConnection connection, ServiceSchema schema, Delta delta, Boolean allowInsert, Boolean allowUpdate, Boolean allowDelete)
func ProcessDelta(_ connection: IAbstractConnection, _ schema: ServiceSchema, _ delta: Delta, _ allowInsert: Boolean, _ allowUpdate: Boolean, _ allowDelete: Boolean)
Sub ProcessDelta(connection As IAbstractConnection, schema As ServiceSchema, delta As Delta, allowInsert As Boolean, allowUpdate As Boolean, allowDelete As Boolean)
Parameters:
- connection:
- schema:
- delta:
- allowInsert:
- allowUpdate:
- allowDelete:
ProcessError
Occurs anytime a delta change processing fails. The event arguments of this event contain information about the exception being raised and provide the opportunity to halt the whole delta processing or ignore it and continue.
event ProcessError: EventHandler<DeltaChangeErrorEventArgs>
delegate EventHandler<DeltaChangeErrorEventArgs> ProcessError()
__event EventHandler<DeltaChangeErrorEventArgs>: ProcessError!
Event ProcessError As EventHandler<DeltaChangeErrorEventArgs>
ReferencedDataTable
property ReferencedDataTable: String read write;
// .NET Core, .NET Standard
String ReferencedDataTable { get; set; }
// .NET Framework
[DefaultValue(\"\")]
String ReferencedDataTable { get; set; }
// .NET Core, .NET Standard
var ReferencedDataTable: String { get{} set{} }
// .NET Framework
@DefaultValue(\"\")
var ReferencedDataTable: String { get{} set{} }
// .NET Core, .NET Standard
Property ReferencedDataTable() As String
// .NET Framework
<DefaultValue(\"\")>
Property ReferencedDataTable() As String
RefreshDataTableName
Identifies the name of the Schema data table to be used to re-read the values of a row after it has been inserted or updated.
property RefreshDataTableName: String read write;
// .NET Core, .NET Standard
String RefreshDataTableName { get; set; }
// .NET Framework
[DefaultValue(\"\")]
String RefreshDataTableName { get; set; }
// .NET Core, .NET Standard
var RefreshDataTableName: String { get{} set{} }
// .NET Framework
@DefaultValue(\"\")
var RefreshDataTableName: String { get{} set{} }
// .NET Core, .NET Standard
Property RefreshDataTableName() As String
// .NET Framework
<DefaultValue(\"\")>
Property RefreshDataTableName() As String
ServiceEvents
property ServiceEvents: IDataAbstractServiceEvents read write;
IDataAbstractServiceEvents ServiceEvents { get; set; }
var ServiceEvents: IDataAbstractServiceEvents { get{} set{} }
Property ServiceEvents() As IDataAbstractServiceEvents
TriggerAfterExecuteCommand protected
method TriggerAfterExecuteCommand(e: ExecuteCommandArgs)
void TriggerAfterExecuteCommand(ExecuteCommandArgs e)
func TriggerAfterExecuteCommand(_ e: ExecuteCommandArgs)
Sub TriggerAfterExecuteCommand(e As ExecuteCommandArgs)
Parameters:
- e:
TriggerAfterProcessChange protected
method TriggerAfterProcessChange(e: DeltaChangeEventArgs)
void TriggerAfterProcessChange(DeltaChangeEventArgs e)
func TriggerAfterProcessChange(_ e: DeltaChangeEventArgs)
Sub TriggerAfterProcessChange(e As DeltaChangeEventArgs)
Parameters:
- e:
TriggerAfterProcessDelta protected
method TriggerAfterProcessDelta(e: DeltaEventArgs)
void TriggerAfterProcessDelta(DeltaEventArgs e)
func TriggerAfterProcessDelta(_ e: DeltaEventArgs)
Sub TriggerAfterProcessDelta(e As DeltaEventArgs)
Parameters:
- e:
TriggerAfterSqlGeneration protected
method TriggerAfterSqlGeneration(e: SqlGenerationEventArgs)
void TriggerAfterSqlGeneration(SqlGenerationEventArgs e)
func TriggerAfterSqlGeneration(_ e: SqlGenerationEventArgs)
Sub TriggerAfterSqlGeneration(e As SqlGenerationEventArgs)
Parameters:
- e:
TriggerBeforeExecuteCommand protected
method TriggerBeforeExecuteCommand(e: ExecuteCommandArgs)
void TriggerBeforeExecuteCommand(ExecuteCommandArgs e)
func TriggerBeforeExecuteCommand(_ e: ExecuteCommandArgs)
Sub TriggerBeforeExecuteCommand(e As ExecuteCommandArgs)
Parameters:
- e:
TriggerBeforeProcessChange protected
method TriggerBeforeProcessChange(e: DeltaChangeEventArgs)
void TriggerBeforeProcessChange(DeltaChangeEventArgs e)
func TriggerBeforeProcessChange(_ e: DeltaChangeEventArgs)
Sub TriggerBeforeProcessChange(e As DeltaChangeEventArgs)
Parameters:
- e:
TriggerBeforeProcessDelta protected
method TriggerBeforeProcessDelta(e: DeltaEventArgs)
void TriggerBeforeProcessDelta(DeltaEventArgs e)
func TriggerBeforeProcessDelta(_ e: DeltaEventArgs)
Sub TriggerBeforeProcessDelta(e As DeltaEventArgs)
Parameters:
- e:
TriggerProcessError protected
method TriggerProcessError(e: DeltaChangeErrorEventArgs)
void TriggerProcessError(DeltaChangeErrorEventArgs e)
func TriggerProcessError(_ e: DeltaChangeErrorEventArgs)
Sub TriggerProcessError(e As DeltaChangeErrorEventArgs)
Parameters:
- e:
TriggerValidateDataTableAccess protected
method TriggerValidateDataTableAccess(e: ValidateSchemaObjectAccessEventArgs)
void TriggerValidateDataTableAccess(ValidateSchemaObjectAccessEventArgs e)
func TriggerValidateDataTableAccess(_ e: ValidateSchemaObjectAccessEventArgs)
Sub TriggerValidateDataTableAccess(e As ValidateSchemaObjectAccessEventArgs)
Parameters:
- e:
UpdateCommandName
Identifies the name of the Schema command to be be executed when applying the updates of a delta.
property UpdateCommandName: String read write;
// .NET Core, .NET Standard
String UpdateCommandName { get; set; }
// .NET Framework
[DefaultValue(\"\")]
String UpdateCommandName { get; set; }
// .NET Core, .NET Standard
var UpdateCommandName: String { get{} set{} }
// .NET Framework
@DefaultValue(\"\")
var UpdateCommandName: String { get{} set{} }
// .NET Core, .NET Standard
Property UpdateCommandName() As String
// .NET Framework
<DefaultValue(\"\")>
Property UpdateCommandName() As String
UpdateMode
Specifies how to locate records that are going to be affected by a delta change.
// .NET Core, .NET Standard
property UpdateMode: UpdateMode read write;
// .NET Framework
[DefaultValue(UpdateMode.WhereKeyOnly)]
property UpdateMode: UpdateMode read write;
// .NET Core, .NET Standard
UpdateMode UpdateMode { get; set; }
// .NET Framework
[DefaultValue(UpdateMode.WhereKeyOnly)]
UpdateMode UpdateMode { get; set; }
// .NET Core, .NET Standard
var UpdateMode: UpdateMode { get{} set{} }
// .NET Framework
@DefaultValue(UpdateMode.WhereKeyOnly)
var UpdateMode: UpdateMode { get{} set{} }
// .NET Core, .NET Standard
Property UpdateMode() As UpdateMode
// .NET Framework
<DefaultValue(UpdateMode.WhereKeyOnly)>
Property UpdateMode() As UpdateMode
AllowedChangeTypes
property AllowedChangeTypes: set of ChangeType read write;
set of ChangeType AllowedChangeTypes { get; set; }
var AllowedChangeTypes: set of ChangeType { get{} set{} }
Property AllowedChangeTypes() As set of ChangeType
AutoGenerateDelete
Indicates if the SQL text for the delete command should be auto generated. If you want to use a specific SQL command defined in a Schema instead, set the DeleteCommandName property.
// .NET Core, .NET Standard
property AutoGenerateDelete: Boolean read write;
// .NET Framework
[DefaultValue(true)]
property AutoGenerateDelete: Boolean read write;
// .NET Core, .NET Standard
Boolean AutoGenerateDelete { get; set; }
// .NET Framework
[DefaultValue(true)]
Boolean AutoGenerateDelete { get; set; }
// .NET Core, .NET Standard
var AutoGenerateDelete: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(true)
var AutoGenerateDelete: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property AutoGenerateDelete() As Boolean
// .NET Framework
<DefaultValue(true)>
Property AutoGenerateDelete() As Boolean
AutoGenerateInsert
Indicates if the SQL text for the insert command should be auto generated. If you want to use a specific SQL command defined in a Schema instead, set the InsertCommandName property.
// .NET Core, .NET Standard
property AutoGenerateInsert: Boolean read write;
// .NET Framework
[DefaultValue(true)]
property AutoGenerateInsert: Boolean read write;
// .NET Core, .NET Standard
Boolean AutoGenerateInsert { get; set; }
// .NET Framework
[DefaultValue(true)]
Boolean AutoGenerateInsert { get; set; }
// .NET Core, .NET Standard
var AutoGenerateInsert: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(true)
var AutoGenerateInsert: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property AutoGenerateInsert() As Boolean
// .NET Framework
<DefaultValue(true)>
Property AutoGenerateInsert() As Boolean
AutoGenerateRefresh
Indicates if the SQL text for the refresh data table should be auto generated. If you want to use a specific data table defined in a Schema instead, set the RefreshDataTableName property.
// .NET Core, .NET Standard
property AutoGenerateRefresh: Boolean read write;
// .NET Framework
[DefaultValue(true)]
property AutoGenerateRefresh: Boolean read write;
// .NET Core, .NET Standard
Boolean AutoGenerateRefresh { get; set; }
// .NET Framework
[DefaultValue(true)]
Boolean AutoGenerateRefresh { get; set; }
// .NET Core, .NET Standard
var AutoGenerateRefresh: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(true)
var AutoGenerateRefresh: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property AutoGenerateRefresh() As Boolean
// .NET Framework
<DefaultValue(true)>
Property AutoGenerateRefresh() As Boolean
AutoGenerateUpdate
Indicates if the SQL text for the update command should be auto generated. If you want to use a specific SQL command defined in a Schema instead, set the UpdateCommandName property.
// .NET Core, .NET Standard
property AutoGenerateUpdate: Boolean read write;
// .NET Framework
[DefaultValue(true)]
property AutoGenerateUpdate: Boolean read write;
// .NET Core, .NET Standard
Boolean AutoGenerateUpdate { get; set; }
// .NET Framework
[DefaultValue(true)]
Boolean AutoGenerateUpdate { get; set; }
// .NET Core, .NET Standard
var AutoGenerateUpdate: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(true)
var AutoGenerateUpdate: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property AutoGenerateUpdate() As Boolean
// .NET Framework
<DefaultValue(true)>
Property AutoGenerateUpdate() As Boolean
DeleteCommandName
Identifies the name of the Schema command to be be executed when applying the deletes of a delta.
property DeleteCommandName: String read write;
// .NET Core, .NET Standard
String DeleteCommandName { get; set; }
// .NET Framework
[DefaultValue(\"\")]
String DeleteCommandName { get; set; }
// .NET Core, .NET Standard
var DeleteCommandName: String { get{} set{} }
// .NET Framework
@DefaultValue(\"\")
var DeleteCommandName: String { get{} set{} }
// .NET Core, .NET Standard
Property DeleteCommandName() As String
// .NET Framework
<DefaultValue(\"\")>
Property DeleteCommandName() As String
IgnoreAffectedRows
// .NET Core, .NET Standard
property IgnoreAffectedRows: Boolean read write;
// .NET Framework
[DefaultValue(false)]
property IgnoreAffectedRows: Boolean read write;
// .NET Core, .NET Standard
Boolean IgnoreAffectedRows { get; set; }
// .NET Framework
[DefaultValue(false)]
Boolean IgnoreAffectedRows { get; set; }
// .NET Core, .NET Standard
var IgnoreAffectedRows: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(false)
var IgnoreAffectedRows: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property IgnoreAffectedRows() As Boolean
// .NET Framework
<DefaultValue(false)>
Property IgnoreAffectedRows() As Boolean
InsertCommandName
Identifies the name of the schema command to be be executed when applying the inserts of a delta.
property InsertCommandName: String read write;
// .NET Core, .NET Standard
String InsertCommandName { get; set; }
// .NET Framework
[DefaultValue(\"\")]
String InsertCommandName { get; set; }
// .NET Core, .NET Standard
var InsertCommandName: String { get{} set{} }
// .NET Framework
@DefaultValue(\"\")
var InsertCommandName: String { get{} set{} }
// .NET Core, .NET Standard
Property InsertCommandName() As String
// .NET Framework
<DefaultValue(\"\")>
Property InsertCommandName() As String
PrepareCommands
Indicates if the commands executed when processing delta changes should be prepared before being executed.
// .NET Core, .NET Standard
property PrepareCommands: Boolean read write;
// .NET Framework
[DefaultValue(true)]
property PrepareCommands: Boolean read write;
// .NET Core, .NET Standard
Boolean PrepareCommands { get; set; }
// .NET Framework
[DefaultValue(true)]
Boolean PrepareCommands { get; set; }
// .NET Core, .NET Standard
var PrepareCommands: Boolean { get{} set{} }
// .NET Framework
@DefaultValue(true)
var PrepareCommands: Boolean { get{} set{} }
// .NET Core, .NET Standard
Property PrepareCommands() As Boolean
// .NET Framework
<DefaultValue(true)>
Property PrepareCommands() As Boolean
ReferencedDataTable
property ReferencedDataTable: String read write;
// .NET Core, .NET Standard
String ReferencedDataTable { get; set; }
// .NET Framework
[DefaultValue(\"\")]
String ReferencedDataTable { get; set; }
// .NET Core, .NET Standard
var ReferencedDataTable: String { get{} set{} }
// .NET Framework
@DefaultValue(\"\")
var ReferencedDataTable: String { get{} set{} }
// .NET Core, .NET Standard
Property ReferencedDataTable() As String
// .NET Framework
<DefaultValue(\"\")>
Property ReferencedDataTable() As String
RefreshDataTableName
Identifies the name of the Schema data table to be used to re-read the values of a row after it has been inserted or updated.
property RefreshDataTableName: String read write;
// .NET Core, .NET Standard
String RefreshDataTableName { get; set; }
// .NET Framework
[DefaultValue(\"\")]
String RefreshDataTableName { get; set; }
// .NET Core, .NET Standard
var RefreshDataTableName: String { get{} set{} }
// .NET Framework
@DefaultValue(\"\")
var RefreshDataTableName: String { get{} set{} }
// .NET Core, .NET Standard
Property RefreshDataTableName() As String
// .NET Framework
<DefaultValue(\"\")>
Property RefreshDataTableName() As String
ServiceEvents
property ServiceEvents: IDataAbstractServiceEvents read write;
IDataAbstractServiceEvents ServiceEvents { get; set; }
var ServiceEvents: IDataAbstractServiceEvents { get{} set{} }
Property ServiceEvents() As IDataAbstractServiceEvents
UpdateCommandName
Identifies the name of the Schema command to be be executed when applying the updates of a delta.
property UpdateCommandName: String read write;
// .NET Core, .NET Standard
String UpdateCommandName { get; set; }
// .NET Framework
[DefaultValue(\"\")]
String UpdateCommandName { get; set; }
// .NET Core, .NET Standard
var UpdateCommandName: String { get{} set{} }
// .NET Framework
@DefaultValue(\"\")
var UpdateCommandName: String { get{} set{} }
// .NET Core, .NET Standard
Property UpdateCommandName() As String
// .NET Framework
<DefaultValue(\"\")>
Property UpdateCommandName() As String
UpdateMode
Specifies how to locate records that are going to be affected by a delta change.
// .NET Core, .NET Standard
property UpdateMode: UpdateMode read write;
// .NET Framework
[DefaultValue(UpdateMode.WhereKeyOnly)]
property UpdateMode: UpdateMode read write;
// .NET Core, .NET Standard
UpdateMode UpdateMode { get; set; }
// .NET Framework
[DefaultValue(UpdateMode.WhereKeyOnly)]
UpdateMode UpdateMode { get; set; }
// .NET Core, .NET Standard
var UpdateMode: UpdateMode { get{} set{} }
// .NET Framework
@DefaultValue(UpdateMode.WhereKeyOnly)
var UpdateMode: UpdateMode { get{} set{} }
// .NET Core, .NET Standard
Property UpdateMode() As UpdateMode
// .NET Framework
<DefaultValue(UpdateMode.WhereKeyOnly)>
Property UpdateMode() As UpdateMode
constructor
Creates a new instance of the BusinessProcessor class.
constructor
BusinessProcessor()
init()
Sub New()
constructor (IContainer)
Creates a new instance of the BusinessProcessor class and adds it to the provided components container.
constructor(container: IContainer)
BusinessProcessor(IContainer container)
init(_ container: IContainer)
Sub New(container As IContainer)
Parameters:
- container: Components container
AssignChangeValuesToCommand protected
Sets the command parameters values. Source values are taken from the provided DeltaChange instance.
method AssignChangeValuesToCommand(connection: IAbstractConnection; command: IDbCommand; mappings: ParamMappingCollection; delta: DeltaChange)
void AssignChangeValuesToCommand(IAbstractConnection connection, IDbCommand command, ParamMappingCollection mappings, DeltaChange delta)
func AssignChangeValuesToCommand(_ connection: IAbstractConnection, _ command: IDbCommand, _ mappings: ParamMappingCollection, _ delta: DeltaChange)
Sub AssignChangeValuesToCommand(connection As IAbstractConnection, command As IDbCommand, mappings As ParamMappingCollection, delta As DeltaChange)
Parameters:
- connection: Database connection
- command: Database command
- mappings: Parameter mapping
- delta: DeltaChange instance that will provide parameter values
CreateParameterMappings protected
method CreateParameterMappings(connection: IAbstractConnection; table: SchemaDataTable; command: IDbCommand; parameters: SchemaParameterCollection; delta: Delta; fields: SchemaColumnMappingCollection): ParamMappingCollection
ParamMappingCollection CreateParameterMappings(IAbstractConnection connection, SchemaDataTable table, IDbCommand command, SchemaParameterCollection parameters, Delta delta, SchemaColumnMappingCollection fields)
func CreateParameterMappings(_ connection: IAbstractConnection, _ table: SchemaDataTable, _ command: IDbCommand, _ parameters: SchemaParameterCollection, _ delta: Delta, _ fields: SchemaColumnMappingCollection) -> ParamMappingCollection
Function CreateParameterMappings(connection As IAbstractConnection, table As SchemaDataTable, command As IDbCommand, parameters As SchemaParameterCollection, delta As Delta, fields As SchemaColumnMappingCollection) As ParamMappingCollection
Parameters:
- connection:
- table:
- command:
- parameters:
- delta:
- fields:
CreateRefreshCommand protected
method CreateRefreshCommand(connection: IAbstractConnection; table: SchemaDataTable; updateMode: UpdateMode; fields: array of String; out parameters: SchemaParameterCollection): IDbCommand
IDbCommand CreateRefreshCommand(IAbstractConnection connection, SchemaDataTable table, UpdateMode updateMode, String[] fields, out SchemaParameterCollection parameters)
func CreateRefreshCommand(_ connection: IAbstractConnection, _ table: SchemaDataTable, _ updateMode: UpdateMode, _ fields: String..., _ parameters: inout SchemaParameterCollection) -> IDbCommand
Function CreateRefreshCommand(connection As IAbstractConnection, table As SchemaDataTable, updateMode As UpdateMode, fields As String(), <OutAttribute> ByRef parameters As SchemaParameterCollection) As IDbCommand
Parameters:
- connection:
- table:
- updateMode:
- fields:
- parameters:
CreateUpdateCommand protected
method CreateUpdateCommand(connection: IAbstractConnection; table: SchemaDataTable; changeType: ChangeType; change: DeltaChange; updateMode: UpdateMode; columnMapping: SchemaColumnMappingCollection; out parameters: SchemaParameterCollection): IDbCommand
IDbCommand CreateUpdateCommand(IAbstractConnection connection, SchemaDataTable table, ChangeType changeType, DeltaChange change, UpdateMode updateMode, SchemaColumnMappingCollection columnMapping, out SchemaParameterCollection parameters)
func CreateUpdateCommand(_ connection: IAbstractConnection, _ table: SchemaDataTable, _ changeType: ChangeType, _ change: DeltaChange, _ updateMode: UpdateMode, _ columnMapping: SchemaColumnMappingCollection, _ parameters: inout SchemaParameterCollection) -> IDbCommand
Function CreateUpdateCommand(connection As IAbstractConnection, table As SchemaDataTable, changeType As ChangeType, change As DeltaChange, updateMode As UpdateMode, columnMapping As SchemaColumnMappingCollection, <OutAttribute> ByRef parameters As SchemaParameterCollection) As IDbCommand
Parameters:
- connection:
- table:
- changeType:
- change:
- updateMode:
- columnMapping:
- parameters:
ProcessDelta
Performs the processing of the passed delta and applies the changes to the database.
method ProcessDelta(connection: IAbstractConnection; schema: ServiceSchema; delta: Delta; allowInsert: Boolean; allowUpdate: Boolean; allowDelete: Boolean)
void ProcessDelta(IAbstractConnection connection, ServiceSchema schema, Delta delta, Boolean allowInsert, Boolean allowUpdate, Boolean allowDelete)
func ProcessDelta(_ connection: IAbstractConnection, _ schema: ServiceSchema, _ delta: Delta, _ allowInsert: Boolean, _ allowUpdate: Boolean, _ allowDelete: Boolean)
Sub ProcessDelta(connection As IAbstractConnection, schema As ServiceSchema, delta As Delta, allowInsert As Boolean, allowUpdate As Boolean, allowDelete As Boolean)
Parameters:
- connection:
- schema:
- delta:
- allowInsert:
- allowUpdate:
- allowDelete:
TriggerAfterExecuteCommand protected
method TriggerAfterExecuteCommand(e: ExecuteCommandArgs)
void TriggerAfterExecuteCommand(ExecuteCommandArgs e)
func TriggerAfterExecuteCommand(_ e: ExecuteCommandArgs)
Sub TriggerAfterExecuteCommand(e As ExecuteCommandArgs)
Parameters:
- e:
TriggerAfterProcessChange protected
method TriggerAfterProcessChange(e: DeltaChangeEventArgs)
void TriggerAfterProcessChange(DeltaChangeEventArgs e)
func TriggerAfterProcessChange(_ e: DeltaChangeEventArgs)
Sub TriggerAfterProcessChange(e As DeltaChangeEventArgs)
Parameters:
- e:
TriggerAfterProcessDelta protected
method TriggerAfterProcessDelta(e: DeltaEventArgs)
void TriggerAfterProcessDelta(DeltaEventArgs e)
func TriggerAfterProcessDelta(_ e: DeltaEventArgs)
Sub TriggerAfterProcessDelta(e As DeltaEventArgs)
Parameters:
- e:
TriggerAfterSqlGeneration protected
method TriggerAfterSqlGeneration(e: SqlGenerationEventArgs)
void TriggerAfterSqlGeneration(SqlGenerationEventArgs e)
func TriggerAfterSqlGeneration(_ e: SqlGenerationEventArgs)
Sub TriggerAfterSqlGeneration(e As SqlGenerationEventArgs)
Parameters:
- e:
TriggerBeforeExecuteCommand protected
method TriggerBeforeExecuteCommand(e: ExecuteCommandArgs)
void TriggerBeforeExecuteCommand(ExecuteCommandArgs e)
func TriggerBeforeExecuteCommand(_ e: ExecuteCommandArgs)
Sub TriggerBeforeExecuteCommand(e As ExecuteCommandArgs)
Parameters:
- e:
TriggerBeforeProcessChange protected
method TriggerBeforeProcessChange(e: DeltaChangeEventArgs)
void TriggerBeforeProcessChange(DeltaChangeEventArgs e)
func TriggerBeforeProcessChange(_ e: DeltaChangeEventArgs)
Sub TriggerBeforeProcessChange(e As DeltaChangeEventArgs)
Parameters:
- e:
TriggerBeforeProcessDelta protected
method TriggerBeforeProcessDelta(e: DeltaEventArgs)
void TriggerBeforeProcessDelta(DeltaEventArgs e)
func TriggerBeforeProcessDelta(_ e: DeltaEventArgs)
Sub TriggerBeforeProcessDelta(e As DeltaEventArgs)
Parameters:
- e:
TriggerProcessError protected
method TriggerProcessError(e: DeltaChangeErrorEventArgs)
void TriggerProcessError(DeltaChangeErrorEventArgs e)
func TriggerProcessError(_ e: DeltaChangeErrorEventArgs)
Sub TriggerProcessError(e As DeltaChangeErrorEventArgs)
Parameters:
- e:
TriggerValidateDataTableAccess protected
method TriggerValidateDataTableAccess(e: ValidateSchemaObjectAccessEventArgs)
void TriggerValidateDataTableAccess(ValidateSchemaObjectAccessEventArgs e)
func TriggerValidateDataTableAccess(_ e: ValidateSchemaObjectAccessEventArgs)
Sub TriggerValidateDataTableAccess(e As ValidateSchemaObjectAccessEventArgs)
Parameters:
- e:
AfterExecuteCommand
Fires after a command was executed.
event AfterExecuteCommand: ExecuteCommandHandler
delegate: method AfterExecuteCommand(sender: BusinessProcessor; e: ExecuteCommandArgs)
delegate ExecuteCommandHandler AfterExecuteCommand()
delegate: void AfterExecuteCommand(BusinessProcessor sender, ExecuteCommandArgs e)
__event ExecuteCommandHandler: AfterExecuteCommand!
delegate: func AfterExecuteCommand(_ sender: BusinessProcessor, _ e: ExecuteCommandArgs)
Event AfterExecuteCommand As ExecuteCommandHandler
delegate: Sub AfterExecuteCommand(sender As BusinessProcessor, e As ExecuteCommandArgs)
AfterProcessChange
Occurs after a delta change has been successfully processed. A common use of this event could be to store information about the updates in a log table.
event AfterProcessChange: EventHandler<DeltaChangeEventArgs>
delegate EventHandler<DeltaChangeEventArgs> AfterProcessChange()
__event EventHandler<DeltaChangeEventArgs>: AfterProcessChange!
Event AfterProcessChange As EventHandler<DeltaChangeEventArgs>
AfterProcessDelta
Occurs after a complete delta has been processed. A common use of this event could be to store information about the updates in a log table.
event AfterProcessDelta: EventHandler<DeltaEventArgs>
delegate EventHandler<DeltaEventArgs> AfterProcessDelta()
__event EventHandler<DeltaEventArgs>: AfterProcessDelta!
Event AfterProcessDelta As EventHandler<DeltaEventArgs>
AfterSqlGeneration
Occurs after the business processor auto generates the SQL text used to process a specific type of change (insert, delete or update). The parameters in the event arguments provide you with all the information you need to understand what type of SQL is being generated and, by modifying the SQLStatement property, allow you to replace the auto generated SQL. A common use of this event could be to track the SQL being executed and log it in a text file for debugging purposes.
event AfterSqlGeneration: SqlGenerationEventHandler
delegate: method AfterSqlGeneration(sender: BusinessProcessor; e: SqlGenerationEventArgs)
delegate SqlGenerationEventHandler AfterSqlGeneration()
delegate: void AfterSqlGeneration(BusinessProcessor sender, SqlGenerationEventArgs e)
__event SqlGenerationEventHandler: AfterSqlGeneration!
delegate: func AfterSqlGeneration(_ sender: BusinessProcessor, _ e: SqlGenerationEventArgs)
Event AfterSqlGeneration As SqlGenerationEventHandler
delegate: Sub AfterSqlGeneration(sender As BusinessProcessor, e As SqlGenerationEventArgs)
BeforeExecuteCommand
event BeforeExecuteCommand: ExecuteCommandHandler
delegate: method BeforeExecuteCommand(sender: BusinessProcessor; e: ExecuteCommandArgs)
delegate ExecuteCommandHandler BeforeExecuteCommand()
delegate: void BeforeExecuteCommand(BusinessProcessor sender, ExecuteCommandArgs e)
__event ExecuteCommandHandler: BeforeExecuteCommand!
delegate: func BeforeExecuteCommand(_ sender: BusinessProcessor, _ e: ExecuteCommandArgs)
Event BeforeExecuteCommand As ExecuteCommandHandler
delegate: Sub BeforeExecuteCommand(sender As BusinessProcessor, e As ExecuteCommandArgs)
BeforeGetTableData
event BeforeGetTableData: BeforeGetTableDataEventHandler
delegate: method BeforeGetTableData(sender: BusinessProcessor; e: BeforeGetTableDataEventArgs)
delegate BeforeGetTableDataEventHandler BeforeGetTableData()
delegate: void BeforeGetTableData(BusinessProcessor sender, BeforeGetTableDataEventArgs e)
__event BeforeGetTableDataEventHandler: BeforeGetTableData!
delegate: func BeforeGetTableData(_ sender: BusinessProcessor, _ e: BeforeGetTableDataEventArgs)
Event BeforeGetTableData As BeforeGetTableDataEventHandler
delegate: Sub BeforeGetTableData(sender As BusinessProcessor, e As BeforeGetTableDataEventArgs)
BeforeProcessChange
Occurs before a delta change is about to be processed. A common use of this event could be to abort an update if the user sending the delta doesn't have enough privileges to do so. To abort the processing of a delta change, simply fire an exception in this event handler.
event BeforeProcessChange: EventHandler<DeltaChangeEventArgs>
delegate EventHandler<DeltaChangeEventArgs> BeforeProcessChange()
__event EventHandler<DeltaChangeEventArgs>: BeforeProcessChange!
Event BeforeProcessChange As EventHandler<DeltaChangeEventArgs>
BeforeProcessDelta
Occurs before a delta is about to be processed. A common use of this event could be to log information about the delta in a log table or to forbid a specific user to modify the data table referenced by the ReferencedDataTable property.
event BeforeProcessDelta: EventHandler<DeltaEventArgs>
delegate EventHandler<DeltaEventArgs> BeforeProcessDelta()
__event EventHandler<DeltaEventArgs>: BeforeProcessDelta!
Event BeforeProcessDelta As EventHandler<DeltaEventArgs>
ProcessError
Occurs anytime a delta change processing fails. The event arguments of this event contain information about the exception being raised and provide the opportunity to halt the whole delta processing or ignore it and continue.
event ProcessError: EventHandler<DeltaChangeErrorEventArgs>
delegate EventHandler<DeltaChangeErrorEventArgs> ProcessError()
__event EventHandler<DeltaChangeErrorEventArgs>: ProcessError!
Event ProcessError As EventHandler<DeltaChangeErrorEventArgs>