CSLA.NET 6.0.0
CSLA .NET is a software development framework that helps you build a reusable, maintainable object-oriented business layer for your app.
Csla.Rules.RuleContext Class Reference

Context information provided to a business rule when it is invoked. More...

Inheritance diagram for Csla.Rules.RuleContext:
Csla.Rules.IRuleContext

Public Member Functions

void ExecuteRule (IBusinessRuleBase innerRule)
 Executes the inner rule from the outer rules context. More...
 
 RuleContext (ApplicationContext applicationContext, Action< IRuleContext > completeHandler, IBusinessRuleBase rule, object target, Dictionary< Csla.Core.IPropertyInfo, object > inputPropertyValues)
 Creates a RuleContext instance for unit tests. More...
 
IRuleContext GetChainedContext (IBusinessRuleBase rule)
 Gets a new RuleContext object for a chained rule. More...
 
void AddErrorResult (string description)
 Add a Error severity result to the Results list. More...
 
void AddErrorResult (string description, bool stopProcessing)
 Add a Error severity result to the Results list. More...
 
void AddErrorResult (Csla.Core.IPropertyInfo property, string description)
 Add a Error severity result to the Results list. More...
 
void AddWarningResult (string description)
 Add a Warning severity result to the Results list. More...
 
void AddWarningResult (string description, bool stopProcessing)
 Add a Warning severity result to the Results list. More...
 
void AddWarningResult (Csla.Core.IPropertyInfo property, string description)
 Add a Warning severity result to the Results list. More...
 
void AddInformationResult (string description)
 Add an Information severity result to the Results list. More...
 
void AddInformationResult (string description, bool stopProcessing)
 Add an Information severity result to the Results list. More...
 
void AddInformationResult (Csla.Core.IPropertyInfo property, string description)
 Add an Information severity result to the Results list. More...
 
void AddSuccessResult (bool stopProcessing)
 Add a Success severity result to the Results list. More...
 
void AddOutValue (object value)
 Add an outbound value to update the rule's primary property on the business object once the rule is complete. More...
 
void AddOutValue (Csla.Core.IPropertyInfo property, object value)
 Add an outbound value to update a property on the business object once the rule is complete. More...
 
void AddDirtyProperty (Csla.Core.IPropertyInfo property)
 Adds a property name as a dirty field (changed value). More...
 
void Complete ()
 Indicates that the rule processing is complete, so CSLA .NET will process the Results list. More...
 
GetInputValue< T > (PropertyInfo< T > propertyInfo)
 Gets the value. More...
 
GetInputValue< T > (IPropertyInfo propertyInfo)
 Gets the value with explicit cast More...
 
bool TryGetInputValue< T > (PropertyInfo< T > propertyInfo, ref T value)
 Tries to get the value. More...
 
bool TryGetInputValue< T > (IPropertyInfo propertyInfo, ref T value)
 Tries to get the value with explicit cast. More...
 

Properties

IBusinessRuleBase Rule [getset]
 Gets the rule object. More...
 
object Target [getset]
 Gets a reference to the target business object. More...
 
Dictionary< Csla.Core.IPropertyInfo, object > InputPropertyValues [getset]
 Gets a dictionary containing copies of property values from the target business object. More...
 
List< IPropertyInfoDirtyProperties [get]
 Gets a list of dirty properties (value was updated). More...
 
Dictionary< Csla.Core.IPropertyInfo, object > OutputPropertyValues [get]
 Gets a dictionary containing copies of property values that should be updated in the target object. More...
 
List< RuleResultResults [get]
 Gets a list of RuleResult objects containing the results of the rule. More...
 
string OriginPropertyName [getset]
 Gets or sets the name of the origin property. More...
 
RuleContextModes ExecuteContext [getset]
 Gets the execution context. More...
 
bool IsCascadeContext [get]
 Gets a value indicating whether this instance is cascade context as a result of AffectedProperties. More...
 
bool IsPropertyChangedContext [get]
 Gets a value indicating whether this instance is property changed context. More...
 
bool IsCheckRulesContext [get]
 Gets a value indicating whether this instance is check rules context. More...
 
bool IsCheckObjectRulesContext [get]
 Gets a value indicating whether this instance is check object rules context. More...
 
ApplicationContext ApplicationContext [get]
 Gets a reference to the current ApplicationContext. More...
 
IDataPortalFactory DataPortalFactory [get]
 Gets a data portal factory instance More...
 
- Properties inherited from Csla.Rules.IRuleContext
IBusinessRuleBase Rule [get]
 Gets the rule object. More...
 
object Target [get]
 Gets a reference to the target business object. More...
 
Dictionary< Csla.Core.IPropertyInfo, object > InputPropertyValues [get]
 Gets a dictionary containing copies of property values from the target business object. More...
 
List< IPropertyInfoDirtyProperties [get]
 Gets a list of dirty properties (value was updated). More...
 
Dictionary< Csla.Core.IPropertyInfo, object > OutputPropertyValues [get]
 Gets a dictionary containing copies of property values that should be updated in the target object. More...
 
List< RuleResultResults [get]
 Gets a list of RuleResult objects containing the results of the rule. More...
 
string OriginPropertyName [get]
 Gets or sets the name of the origin property. More...
 
bool IsCascadeContext [get]
 Gets a value indicating whether this instance is cascade context as a result of AffectedProperties. More...
 
bool IsPropertyChangedContext [get]
 Gets a value indicating whether this instance is property changed context. More...
 
bool IsCheckRulesContext [get]
 Gets a value indicating whether this instance is check rules context. More...
 
bool IsCheckObjectRulesContext [get]
 Gets a value indicating whether this instance is check object rules context. More...
 
RuleContextModes ExecuteContext [get]
 Gets the execution context. More...
 
ApplicationContext ApplicationContext [get]
 Gets a reference to the current ApplicationContext. More...
 
IDataPortalFactory DataPortalFactory [get]
 Gets a data portal factory instance More...
 

Detailed Description

Context information provided to a business rule when it is invoked.

Definition at line 50 of file RuleContext.cs.

Constructor & Destructor Documentation

◆ RuleContext()

Csla.Rules.RuleContext.RuleContext ( ApplicationContext  applicationContext,
Action< IRuleContext completeHandler,
IBusinessRuleBase  rule,
object  target,
Dictionary< Csla.Core.IPropertyInfo, object >  inputPropertyValues 
)

Creates a RuleContext instance for unit tests.

Parameters
applicationContextCurrent ApplicationContext
completeHandlerCallback for async rule.
ruleReference to the rule object.
targetTarget business object.
inputPropertyValuesInput property values used by the rule.

Definition at line 243 of file RuleContext.cs.

Member Function Documentation

◆ AddDirtyProperty()

void Csla.Rules.RuleContext.AddDirtyProperty ( Csla.Core.IPropertyInfo  property)

Adds a property name as a dirty field (changed value).

Parameters
propertyThe property.
Exceptions
System.ArgumentOutOfRangeException

Implements Csla.Rules.IRuleContext.

Definition at line 424 of file RuleContext.cs.

◆ AddErrorResult() [1/3]

void Csla.Rules.RuleContext.AddErrorResult ( Csla.Core.IPropertyInfo  property,
string  description 
)

Add a Error severity result to the Results list.

This method is only allowed on "object" level rules to allow an object level rule to set warning result on a field.

Parameters
propertyProperty to which the result applies.
descriptionHuman-readable description of why the rule failed.
Exceptions
System.ArgumentOutOfRangeExceptionWhen property is not defined in AffectedProperties list.


Implements Csla.Rules.IRuleContext.

Definition at line 308 of file RuleContext.cs.

◆ AddErrorResult() [2/3]

void Csla.Rules.RuleContext.AddErrorResult ( string  description)

Add a Error severity result to the Results list.

Parameters
descriptionHuman-readable description of why the rule failed.

Implements Csla.Rules.IRuleContext.

Definition at line 283 of file RuleContext.cs.

◆ AddErrorResult() [3/3]

void Csla.Rules.RuleContext.AddErrorResult ( string  description,
bool  stopProcessing 
)

Add a Error severity result to the Results list.

Parameters
descriptionHuman-readable description of why the rule failed.
stopProcessingTrue if no further rules should be processed for the current property.

Implements Csla.Rules.IRuleContext.

Definition at line 295 of file RuleContext.cs.

◆ AddInformationResult() [1/3]

void Csla.Rules.RuleContext.AddInformationResult ( Csla.Core.IPropertyInfo  property,
string  description 
)

Add an Information severity result to the Results list.

This method is only allowed on "object" level rules to allow an object level rule to set warning result on a field.

Parameters
propertyProperty to which the result applies.
descriptionHuman-readable description of why the rule failed.
Exceptions
System.ArgumentOutOfRangeExceptionWhen property is not defined in AffectedProperties list.


Implements Csla.Rules.IRuleContext.

Definition at line 379 of file RuleContext.cs.

◆ AddInformationResult() [2/3]

void Csla.Rules.RuleContext.AddInformationResult ( string  description)

Add an Information severity result to the Results list.

Parameters
descriptionHuman-readable description of why the rule failed.

Implements Csla.Rules.IRuleContext.

Definition at line 357 of file RuleContext.cs.

◆ AddInformationResult() [3/3]

void Csla.Rules.RuleContext.AddInformationResult ( string  description,
bool  stopProcessing 
)

Add an Information severity result to the Results list.

Parameters
descriptionHuman-readable description of why the rule failed.
stopProcessingTrue if no further rules should be processed for the current property.

Implements Csla.Rules.IRuleContext.

Definition at line 367 of file RuleContext.cs.

◆ AddOutValue() [1/2]

void Csla.Rules.RuleContext.AddOutValue ( Csla.Core.IPropertyInfo  property,
object  value 
)

Add an outbound value to update a property on the business object once the rule is complete.

Parameters
propertyProperty to update.
valueNew property value.
Exceptions
System.ArgumentOutOfRangeExceptionWhen property is not defined in AffectedProperties list.


Implements Csla.Rules.IRuleContext.

Definition at line 412 of file RuleContext.cs.

◆ AddOutValue() [2/2]

void Csla.Rules.RuleContext.AddOutValue ( object  value)

Add an outbound value to update the rule's primary property on the business object once the rule is complete.

Parameters
valueNew property value.

Implements Csla.Rules.IRuleContext.

Definition at line 400 of file RuleContext.cs.

◆ AddSuccessResult()

void Csla.Rules.RuleContext.AddSuccessResult ( bool  stopProcessing)

Add a Success severity result to the Results list.

Parameters
stopProcessingTrue if no further rules should be processed for the current property.

Implements Csla.Rules.IRuleContext.

Definition at line 390 of file RuleContext.cs.

◆ AddWarningResult() [1/3]

void Csla.Rules.RuleContext.AddWarningResult ( Csla.Core.IPropertyInfo  property,
string  description 
)

Add a Warning severity result to the Results list.

This method is only allowed on "object" level rules to allow an object level rule to set warning result on a field.

Parameters
propertyProperty to which the result applies.
descriptionHuman-readable description of why the rule failed.
Exceptions
System.ArgumentOutOfRangeExceptionWhen property is not defined in AffectedProperties list.


Implements Csla.Rules.IRuleContext.

Definition at line 345 of file RuleContext.cs.

◆ AddWarningResult() [2/3]

void Csla.Rules.RuleContext.AddWarningResult ( string  description)

Add a Warning severity result to the Results list.

Parameters
descriptionHuman-readable description of why the rule failed.

Implements Csla.Rules.IRuleContext.

Definition at line 320 of file RuleContext.cs.

◆ AddWarningResult() [3/3]

void Csla.Rules.RuleContext.AddWarningResult ( string  description,
bool  stopProcessing 
)

Add a Warning severity result to the Results list.

Parameters
descriptionHuman-readable description of why the rule failed.
stopProcessingTrue if no further rules should be processed for the current property.

Implements Csla.Rules.IRuleContext.

Definition at line 332 of file RuleContext.cs.

◆ Complete()

void Csla.Rules.RuleContext.Complete ( )

Indicates that the rule processing is complete, so CSLA .NET will process the Results list.

This method must be invoked on the UI thread.

Implements Csla.Rules.IRuleContext.

Definition at line 436 of file RuleContext.cs.

◆ ExecuteRule()

void Csla.Rules.RuleContext.ExecuteRule ( IBusinessRuleBase  innerRule)

Executes the inner rule from the outer rules context.

Creates a chained context and if CanRunRule will execute the inner rule.

Parameters
innerRuleThe inner rule.

Implements Csla.Rules.IRuleContext.

Definition at line 148 of file RuleContext.cs.

◆ GetChainedContext()

IRuleContext Csla.Rules.RuleContext.GetChainedContext ( IBusinessRuleBase  rule)

Gets a new RuleContext object for a chained rule.

Parameters
ruleChained rule that will use this new context.

The properties from the existing RuleContext will be used to create the new context, with the exception of the Rule property which is set using the supplied IBusinessRule value.

Implements Csla.Rules.IRuleContext.

Definition at line 265 of file RuleContext.cs.

◆ GetInputValue< T >() [1/2]

T Csla.Rules.RuleContext.GetInputValue< T > ( IPropertyInfo  propertyInfo)

Gets the value with explicit cast

Template Parameters
T
Parameters
propertyInfoThe generic property info.
Returns

Implements Csla.Rules.IRuleContext.

Definition at line 460 of file RuleContext.cs.

◆ GetInputValue< T >() [2/2]

T Csla.Rules.RuleContext.GetInputValue< T > ( PropertyInfo< T >  propertyInfo)

Gets the value.

Template Parameters
T
Parameters
propertyInfoThe property info.
Returns

Implements Csla.Rules.IRuleContext.

Definition at line 449 of file RuleContext.cs.

◆ TryGetInputValue< T >() [1/2]

bool Csla.Rules.RuleContext.TryGetInputValue< T > ( IPropertyInfo  propertyInfo,
ref T  value 
)

Tries to get the value with explicit cast.

Use this method on LazyLoaded properties to test if value has been provided or not.

Template Parameters
T
Parameters
propertyInfoThe generic property info.
valueThe value.
Returns
true if value exists else false

Implements Csla.Rules.IRuleContext.

Definition at line 491 of file RuleContext.cs.

◆ TryGetInputValue< T >() [2/2]

bool Csla.Rules.RuleContext.TryGetInputValue< T > ( PropertyInfo< T >  propertyInfo,
ref T  value 
)

Tries to get the value.

Use this method on LazyLoaded properties to test if value has been provided or not.

Template Parameters
T
Parameters
propertyInfoThe generic property info.
valueThe value.
Returns
true if value exists else false

Implements Csla.Rules.IRuleContext.

Definition at line 472 of file RuleContext.cs.

Property Documentation

◆ ApplicationContext

ApplicationContext Csla.Rules.RuleContext.ApplicationContext
get

Gets a reference to the current ApplicationContext.

Definition at line 506 of file RuleContext.cs.

◆ DataPortalFactory

IDataPortalFactory Csla.Rules.RuleContext.DataPortalFactory
get

Gets a data portal factory instance

Definition at line 511 of file RuleContext.cs.

◆ DirtyProperties

List<IPropertyInfo> Csla.Rules.RuleContext.DirtyProperties
get

Gets a list of dirty properties (value was updated).

The dirty properties.

Definition at line 77 of file RuleContext.cs.

◆ ExecuteContext

RuleContextModes Csla.Rules.RuleContext.ExecuteContext
getset

Gets the execution context.

The execution context.

Definition at line 140 of file RuleContext.cs.

◆ InputPropertyValues

Dictionary<Csla.Core.IPropertyInfo, object> Csla.Rules.RuleContext.InputPropertyValues
getset

Gets a dictionary containing copies of property values from the target business object.

Definition at line 67 of file RuleContext.cs.

◆ IsCascadeContext

bool Csla.Rules.RuleContext.IsCascadeContext
get

Gets a value indicating whether this instance is cascade context as a result of AffectedProperties.

true if this instance is cascade context; otherwise, false.

Definition at line 169 of file RuleContext.cs.

◆ IsCheckObjectRulesContext

bool Csla.Rules.RuleContext.IsCheckObjectRulesContext
get

Gets a value indicating whether this instance is check object rules context.

true if this instance is check object rules context; otherwise, false.

Definition at line 205 of file RuleContext.cs.

◆ IsCheckRulesContext

bool Csla.Rules.RuleContext.IsCheckRulesContext
get

Gets a value indicating whether this instance is check rules context.

true if this instance is check rules context; otherwise, false.

Definition at line 193 of file RuleContext.cs.

◆ IsPropertyChangedContext

bool Csla.Rules.RuleContext.IsPropertyChangedContext
get

Gets a value indicating whether this instance is property changed context.

true if this instance is property changed context; otherwise, false.

Definition at line 181 of file RuleContext.cs.

◆ OriginPropertyName

string Csla.Rules.RuleContext.OriginPropertyName
getset

Gets or sets the name of the origin property.

The name of the origin property.

Definition at line 134 of file RuleContext.cs.

◆ OutputPropertyValues

Dictionary<Csla.Core.IPropertyInfo, object> Csla.Rules.RuleContext.OutputPropertyValues
get

Gets a dictionary containing copies of property values that should be updated in the target object.

Definition at line 93 of file RuleContext.cs.

◆ Results

List<RuleResult> Csla.Rules.RuleContext.Results
get

Gets a list of RuleResult objects containing the results of the rule.

Definition at line 113 of file RuleContext.cs.

◆ Rule

IBusinessRuleBase Csla.Rules.RuleContext.Rule
getset

Gets the rule object.

Definition at line 56 of file RuleContext.cs.

◆ Target

object Csla.Rules.RuleContext.Target
getset

Gets a reference to the target business object.

Definition at line 61 of file RuleContext.cs.