Csla
This is the base class from which most business objects
will be derived.
This class is the core of the CSLA .NET framework. To create
a business object, inherit from this class.
Please refer to 'Expert C# 2005 Business Objects' for
full details on the use of this base class to create business
objects.
Type of the business object being defined.
Override this method to return a unique identifying
value for this object.
If you can not provide a unique identifying value, it
is best if you can generate such a unique value (even
temporarily). If you can not do that, then return
and then manually override the
, and
methods in your business object.
Compares this object for equality with another object, using
the results of to determine
equality.
The object to be compared.
Returns a hash code value for this object, based on
the results of .
Returns a text representation of this object by
returning the value
in text form.
Creates a clone of the object.
A new object containing the exact data of the original object.
Saves the object to the database.
Calling this method starts the save operation, causing the object
to be inserted, updated or deleted within the database based on the
object's current state.
If is
the object will be deleted. Otherwise, if
is the object will be inserted.
Otherwise the object's data will be updated in the database.
All this is contingent on . If
this value is , no data operation occurs.
It is also contingent on .
If this value is an
exception will be thrown to indicate that the UI attempted to save an
invalid object.
It is important to note that this method returns a new version of the
business object that contains any data updated during the save operation.
You MUST update all object references to use this new version of the
business object in order to have access to the correct object data.
You can override this method to add your own custom behaviors to the save
operation. For instance, you may add some security checks to make sure
the user can save the object. If all security checks pass, you would then
invoke the base Save method via base.Save().
A new object containing the saved values.
Saves the object to the database, forcing
IsNew to and IsDirty to True.
If , triggers overriding IsNew and IsDirty.
If then it is the same as calling Save().
A new object containing the saved values.
This overload is designed for use in web applications
when implementing the Update method in your
data wrapper object.
Event raised when an object has been saved.
Raises the Saved event, indicating that the
object has been saved, and providing a reference
to the new object instance.
The new object instance.
This is the base class from which most business collections
or lists will be derived.
Type of the business object being defined.
Type of the child objects contained in the list.
Creates an instance of the object.
Override this method to set up event handlers so user
code in a partial class can respond to events raised by
generated code.
Gets a value indicating whether this object's data has been changed.
Gets a value indicating whether this object is currently in
a valid state (has no broken validation rules).
Starts a nested edit on the object.
When this method is called the object takes a snapshot of
its current state (the values of its variables). This snapshot
can be restored by calling
or committed by calling .
This is a nested operation. Each call to BeginEdit adds a new
snapshot of the object's state to a stack. You should ensure that
for each call to BeginEdit there is a corresponding call to either
CancelEdit or ApplyEdit to remove that snapshot from the stack.
See Chapters 2 and 3 for details on n-level undo and state stacking.
This method triggers the copying of all child object states.
Cancels the current edit process, restoring the object's state to
its previous values.
Calling this method causes the most recently taken snapshot of the
object's state to be restored. This resets the object's values
to the point of the last
call.
This method triggers an undo in all child objects.
Commits the current edit process.
Calling this method causes the most recently taken snapshot of the
object's state to be discarded, thus committing any changes made
to the object's state since the last
call.
This method triggers an
in all child objects.
Override this method to be notified when a child object's
method has
completed.
The child object that was edited.
A collection containing all child objects marked
for deletion.
Returns if the internal deleted list
contains the specified child object.
Child object to check.
This method is called by a child object when it
wants to be removed from the collection.
The child object to remove.
This method is called by a child object when it
wants to be removed from the collection.
The child object to remove.
Sets the edit level of the child object as it is added.
Index of the item to insert.
Item to insert.
Marks the child object for deletion and moves it to
the collection of deleted objects.
Index of the item to remove.
Clears the collection, moving all active
items to the deleted list.
Replaces the item at the specified index with
the specified item, first moving the original
item to the deleted list.
The zero-based index of the item to replace.
The new value for the item at the specified index.
The value can be null for reference types.
Returns the current edit level of the object.
Indicates whether this collection object is a child object.
True if this is a child object.
Marks the object as being a child object.
By default all business objects are 'parent' objects. This means
that they can be directly retrieved and updated into the database.
We often also need child objects. These are objects which are contained
within other objects. For instance, a parent Invoice object will contain
child LineItem objects.
To create a child object, the MarkAsChild method must be called as the
object is created. Please see Chapter 7 for details on the use of the
MarkAsChild method.
Creates a clone of the object.
A new object containing the exact data of the original object.
Creates a clone of the object.
A new object containing the exact data of the original object.
This method is called on a newly deserialized object
after deserialization is complete.
Saves the object to the database.
Calling this method starts the save operation, causing the all child
objects to be inserted, updated or deleted within the database based on the
each object's current state.
All this is contingent on . If
this value is , no data operation occurs.
It is also contingent on . If this value is
an exception will be thrown to
indicate that the UI attempted to save an invalid object.
It is important to note that this method returns a new version of the
business collection that contains any data updated during the save operation.
You MUST update all object references to use this new version of the
business collection in order to have access to the correct object data.
You can override this method to add your own custom behaviors to the save
operation. For instance, you may add some security checks to make sure
the user can save the object. If all security checks pass, you would then
invoke the base Save method via MyBase.Save().
A new object containing the saved values.
Override this method to load a new business object with default
values from the database.
Override this method to allow retrieval of an existing business
object based on data in the database.
An object containing criteria values to identify the object.
Override this method to allow update of a business
object.
Override this method to allow immediate deletion of a business object.
An object containing criteria values to identify the object.
Called by the server-side DataPortal prior to calling the
requested DataPortal_xyz method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal after calling the
requested DataPortal_xyz method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal if an exception
occurs during data access.
The DataPortalContext object passed to the DataPortal.
The Exception thrown during data access.
Event raised when an object has been saved.
Raises the event, indicating that the
object has been saved, and providing a reference
to the new object instance.
The new object instance.
This is the base class from which command
objects will be derived.
Command objects allow the execution of arbitrary server-side
functionality. Most often, this involves the invocation of
a stored procedure in the database, but can involve any other
type of stateless, atomic call to the server instead.
To implement a command object, inherit from CommandBase and
override the DataPortal_Execute method. In this method you can
implement any server-side code as required.
To pass data to/from the server, use instance variables within
the command object itself. The command object is instantiated on
the client, and is passed by value to the server where the
DataPortal_Execute method is invoked. The command object is then
returned to the client by value.
Creates an instance of the object.
Override this method to set up event handlers so user
code in a partial class can respond to events raised by
generated code.
Override this method to implement any server-side code
that is to be run when the command is executed.
Called by the server-side DataPortal prior to calling the
requested DataPortal_xyz method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal after calling the
requested DataPortal_xyz method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal if an exception
occurs during server-side processing.
The DataPortalContext object passed to the DataPortal.
The Exception thrown during processing.
This class implements INotifyPropertyChanged
in a serialization-safe manner.
Creates an instance of the object.
Implements a serialization-safe PropertyChanged event.
Call this method to raise the PropertyChanged event
for all object properties.
This method is for backward compatibility with
CSLA .NET 1.x.
Call this method to raise the PropertyChanged event
for all object properties.
This method is automatically called by MarkDirty. It
actually raises PropertyChanged for an empty string,
which tells data binding to refresh all properties.
Call this method to raise the PropertyChanged event
for a specific property.
Name of the property that
has changed.
This method may be called by properties in the business
class to indicate the change in a specific property.
This is the non-generic base class from which most
business objects will be derived.
See Chapter 3 for details.
Creates an instance of the object.
Override this method to set up event handlers so user
code in a partial class can respond to events raised by
generated code.
Returns if this is a new object,
if it is a pre-existing object.
An object is considered to be new if its primary identifying (key) value
doesn't correspond to data in the database. In other words,
if the data values in this particular
object have not yet been saved to the database the object is considered to
be new. Likewise, if the object's data has been deleted from the database
then the object is considered to be new.
A value indicating if this object is new.
Returns if this object is marked for deletion.
CSLA .NET supports both immediate and deferred deletion of objects. This
property is part of the support for deferred deletion, where an object
can be marked for deletion, but isn't actually deleted until the object
is saved to the database. This property indicates whether or not the
current object has been marked for deletion. If it is
, the object will
be deleted when it is saved to the database, otherwise it will be inserted
or updated by the save operation.
A value indicating if this object is marked for deletion.
Returns if this object's data has been changed.
When an object's data is changed, CSLA .NET makes note of that change
and considers the object to be 'dirty' or changed. This value is used to
optimize data updates, since an unchanged object does not need to be
updated into the database. All new objects are considered dirty. All objects
marked for deletion are considered dirty.
Once an object's data has been saved to the database (inserted or updated)
the dirty flag is cleared and the object is considered unchanged. Objects
newly loaded from the database are also considered unchanged.
A value indicating if this object's data has been changed.
Marks the object as being a new object. This also marks the object
as being dirty and ensures that it is not marked for deletion.
Newly created objects are marked new by default. You should call
this method in the implementation of DataPortal_Update when the
object is deleted (due to being marked for deletion) to indicate
that the object no longer reflects data in the database.
If you override this method, make sure to call the base
implementation after executing your new code.
Marks the object as being an old (not new) object. This also
marks the object as being unchanged (not dirty).
You should call this method in the implementation of
DataPortal_Fetch to indicate that an existing object has been
successfully retrieved from the database.
You should call this method in the implementation of
DataPortal_Update to indicate that a new object has been successfully
inserted into the database.
If you override this method, make sure to call the base
implementation after executing your new code.
Marks an object for deletion. This also marks the object
as being dirty.
You should call this method in your business logic in the
case that you want to have the object deleted when it is
saved to the database.
Marks an object as being dirty, or changed.
You should call this method in your business logic any time
the object's internal data changes. Any time any instance
variable changes within the object, this method should be called
to tell CSLA .NET that the object's data has been changed.
Marking an object as dirty does two things. First it ensures
that CSLA .NET will properly save the object as appropriate. Second,
it causes CSLA .NET to tell Windows Forms data binding that the
object's data has changed so any bound controls will update to
reflect the new values.
Marks an object as being dirty, or changed.
to supress the PropertyChanged event that is otherwise
raised to indicate that the object's state has changed.
Performs processing required when the current
property has changed.
This method calls CheckRules(propertyName), MarkDirty and
OnPropertyChanged(propertyName). MarkDirty is called such
that no event is raised for IsDirty, so only the specific
property changed event for the current property is raised.
This implementation uses System.Diagnostics.StackTrace to
determine the name of the current property, and so must be called
directly from the property to be checked.
Performs processing required when a property
has changed.
Name of the property that
has changed.
This method calls CheckRules(propertyName), MarkDirty and
OnPropertyChanged(propertyName). MarkDirty is called such
that no event is raised for IsDirty, so only the specific
property changed event for the current property is raised.
Forces the object's IsDirty flag to .
This method is normally called automatically and is
not intended to be called manually.
Returns if this object is both dirty and valid.
An object is considered dirty (changed) if
returns . It is
considered valid if IsValid
returns . The IsSavable property is
a combination of these two properties.
A value indicating if this object is both dirty and valid.
Override this method to add authorization
rules for your object's properties.
AddInstanceAuthorizationRules is automatically called by CSLA .NET
when your object should associate per-instance authorization roles
with its properties.
Override this method to add per-type
authorization rules for your type's properties.
AddAuthorizationRules is automatically called by CSLA .NET
when your object should associate per-type authorization roles
with its properties.
Provides access to the AuthorizationRules object for this
object.
Use this object to add a list of allowed and denied roles for
reading and writing properties of the object. Typically these
values are added once when the business object is instantiated.
Returns if the user is allowed to read the
calling property.
if read is allowed.
Indicates whether a negative
result should cause an exception.
Returns if the user is allowed to read the
calling property.
if read is allowed.
Name of the property to read.
Indicates whether a negative
result should cause an exception.
Returns if the user is allowed to read the
calling property.
if read is allowed.
Returns if the user is allowed to read the
specified property.
Name of the property to read.
if read is allowed.
If a list of allowed roles is provided then only users in those
roles can read. If no list of allowed roles is provided then
the list of denied roles is checked.
If a list of denied roles is provided then users in the denied
roles are denied read access. All other users are allowed.
If neither a list of allowed nor denied roles is provided then
all users will have read access.
Returns if the user is allowed to write the
calling property.
if write is allowed.
Indicates whether a negative
result should cause an exception.
Returns if the user is allowed to write the
calling property.
if write is allowed.
Name of the property to write.
Indicates whether a negative
result should cause an exception.
Returns if the user is allowed to write the
calling property.
if write is allowed.
Returns if the user is allowed to write the
specified property.
Name of the property to write.
if write is allowed.
If a list of allowed roles is provided then only users in those
roles can write. If no list of allowed roles is provided then
the list of denied roles is checked.
If a list of denied roles is provided then users in the denied
roles are denied write access. All other users are allowed.
If neither a list of allowed nor denied roles is provided then
all users will have write access.
Provide access to the parent reference for use
in child object code.
This value will be Nothing for root objects.
Used by BusinessListBase as a child object is
created to tell the child object about its
parent.
A reference to the parent collection object.
Allow data binding to start a nested edit on the object.
Data binding may call this method many times. Only the first
call should be honored, so we have extra code to detect this
and do nothing for subsquent calls.
Allow data binding to cancel the current edit.
Data binding may call this method many times. Only the first
call to either IEditableObject.CancelEdit or
IEditableObject.EndEdit
should be honored. We include extra code to detect this and do
nothing for subsequent calls.
Allow data binding to apply the current edit.
Data binding may call this method many times. Only the first
call to either IEditableObject.EndEdit or
IEditableObject.CancelEdit
should be honored. We include extra code to detect this and do
nothing for subsequent calls.
Starts a nested edit on the object.
When this method is called the object takes a snapshot of
its current state (the values of its variables). This snapshot
can be restored by calling CancelEdit
or committed by calling ApplyEdit.
This is a nested operation. Each call to BeginEdit adds a new
snapshot of the object's state to a stack. You should ensure that
for each call to BeginEdit there is a corresponding call to either
CancelEdit or ApplyEdit to remove that snapshot from the stack.
See Chapters 2 and 3 for details on n-level undo and state stacking.
Cancels the current edit process, restoring the object's state to
its previous values.
Calling this method causes the most recently taken snapshot of the
object's state to be restored. This resets the object's values
to the point of the last BeginEdit call.
Called when an undo operation has completed.
This method resets the object as a result of
deserialization and raises PropertyChanged events
to notify data binding that the object has changed.
Commits the current edit process.
Calling this method causes the most recently taken snapshot of the
object's state to be discarded, thus committing any changes made
to the object's state since the last BeginEdit call.
Notifies the parent object (if any) that this
child object's edits have been accepted.
Returns if this is a child (non-root) object.
Marks the object as being a child object.
Marks the object for deletion. The object will be deleted as part of the
next save operation.
CSLA .NET supports both immediate and deferred deletion of objects. This
method is part of the support for deferred deletion, where an object
can be marked for deletion, but isn't actually deleted until the object
is saved to the database. This method is called by the UI developer to
mark the object for deletion.
To 'undelete' an object, use n-level undo as discussed in Chapters 2 and 3.
Called by a parent object to mark the child
for deferred deletion.
Gets or sets the current edit level of the
object.
Allow the collection object to use the
edit level as needed.
Creates a clone of the object.
A new object containing the exact data of the original object.
Provides access to the broken rules functionality.
This property is used within your business logic so you can
easily call the AddRule() method to associate validation
rules with your object's properties.
Override this method in your business class to
be notified when you need to set up business
rules.
This method is automatically called by CSLA .NET
when your object should associate per-instance
validation rules with its properties.
Override this method in your business class to
be notified when you need to set up shared
business rules.
This method is automatically called by CSLA .NET
when your object should associate per-type
validation rules with its properties.
Returns if the object is currently valid, if the
object has broken rules or is otherwise invalid.
By default this property relies on the underling ValidationRules
object to track whether any business rules are currently broken for this object.
You can override this property to provide more sophisticated
implementations of the behavior. For instance, you should always override
this method if your object has child objects, since the validity of this object
is affected by the validity of all child objects.
A value indicating if the object is currently valid.
Provides access to the readonly collection of broken business rules
for this object.
A Csla.Validation.RulesCollection object.
Override this method to load a new business object with default
values from the database.
Normally you will overload this method to accept a strongly-typed
criteria parameter, rather than overriding the method with a
loosely-typed criteria parameter.
Override this method to allow retrieval of an existing business
object based on data in the database.
Normally you will overload this method to accept a strongly-typed
criteria parameter, rather than overriding the method with a
loosely-typed criteria parameter.
An object containing criteria values to identify the object.
Override this method to allow insertion of a business
object.
Override this method to allow update of a business
object.
Override this method to allow deferred deletion of a business object.
Override this method to allow immediate deletion of a business object.
An object containing criteria values to identify the object.
Called by the server-side DataPortal prior to calling the
requested DataPortal_XYZ method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal after calling the
requested DataPortal_XYZ method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal if an exception
occurs during data access.
The DataPortalContext object passed to the DataPortal.
The Exception thrown during data access.
This method is called on a newly deserialized object
after deserialization is complete.
Serialization context object.
Extends BindingList of T by adding extra
events.
Type of item contained in list.
Implements a serialization-safe RemovingItem event.
Raise the RemovingItem event.
A reference to the item that
is being removed.
Remove the item at the
specified index.
The zero-based index of the item
to remove.
Defines the common methods required by all
editable CSLA single objects.
It is strongly recommended that the implementations
of the methods in this interface be made Private
so as to not clutter up the native interface of
the collection objects.
Returns if this object's data has been changed.
When an object's data is changed, CSLA .NET makes note of that change
and considers the object to be 'dirty' or changed. This value is used to
optimize data updates, since an unchanged object does not need to be
updated into the database. All new objects are considered dirty. All objects
marked for deletion are considered dirty.
Once an object's data has been saved to the database (inserted or updated)
the dirty flag is cleared and the object is considered unchanged. Objects
newly loaded from the database are also considered unchanged.
A value indicating if this object's data has been changed.
Returns if the object is currently valid, if the
object has broken rules or is otherwise invalid.
By default this property relies on the underling ValidationRules
object to track whether any business rules are currently broken for this object.
You can override this property to provide more sophisticated
implementations of the behavior. For instance, you should always override
this method if your object has child objects, since the validity of this object
is affected by the validity of all child objects.
A value indicating if the object is currently valid.
Returns if this object is marked for deletion.
CSLA .NET supports both immediate and deferred deletion of objects. This
property is part of the support for deferred deletion, where an object
can be marked for deletion, but isn't actually deleted until the object
is saved to the database. This property indicates whether or not the
current object has been marked for deletion. If it is
, the object will
be deleted when it is saved to the database, otherwise it will be inserted
or updated by the save operation.
A value indicating if this object is marked for deletion.
Returns if this is a new object,
if it is a pre-existing object.
An object is considered to be new if its primary identifying (key) value
doesn't correspond to data in the database. In other words,
if the data values in this particular
object have not yet been saved to the database the object is considered to
be new. Likewise, if the object's data has been deleted from the database
then the object is considered to be new.
A value indicating if this object is new.
Returns if this object is both dirty and valid.
An object is considered dirty (changed) if
returns . It is
considered valid if IsValid
returns . The IsSavable property is
a combination of these two properties.
A value indicating if this object is both dirty and valid.
For internal use only!!
Altering this value will almost certainly
break your code. This property is for use
by the parent collection only!
Gets the current edit level of the object.
Called by a parent object to mark the child
for deferred deletion.
Used by BusinessListBase as a child object is
created to tell the child object about its
parent.
A reference to the parent collection object.
Marks the object for deletion. The object will be deleted as part of the
next save operation.
Extends by adding extra
events.
Event indicating that an item is being
removed from the list.
Defines the interface that must be implemented
by any business object that contains child
objects.
This method is called by a child object when it
wants to be removed from the collection.
The child object to remove.
Override this method to be notified when a child object's
method has
completed.
The child object that was edited.
Implement this interface in a collection
to report a total row count to
, where that
row count is different from the collection's
normal Count property value.
This interface is used to provide paging
support for web data binding through
. You should
implement this interface in your business
collection class, along with windowed
data loading, to provide efficient paging
support.
The total number of rows of available
data.
Specifies that the object can save
itself.
Saves the object to the database.
A new object containing the saved values.
Event raised when an object has been saved.
Defines the methods required to participate
in n-level undo within the CSLA .NET framework.
This interface is used by Csla.Core.UndoableBase
to initiate begin, cancel and apply edit operations.
Copies the state of the object and places the copy
onto the state stack.
Restores the object's state to the most recently
copied values from the state stack.
Restores the state of the object to its
previous value by taking the data out of
the stack and restoring it into the fields
of the object.
Accepts any changes made to the object since the last
state copy was made.
The most recent state copy is removed from the state
stack and discarded, thus committing any changes made
to the object's state.
This is the core interface implemented
by all CSLA .NET base classes.
This interface is implemented by all
Command objects.
Defines the common methods required by all
editable CSLA collection objects.
It is strongly recommended that the implementations
of the methods in this interface be made Private
so as to not clutter up the native interface of
the collection objects.
Removes the specified child from the parent
collection.
Child object to be removed.
Interface implemented by all read-only collection
classes.
Specifies that the object is a readonly
business object.
Returns if the user is allowed to read the
calling property.
Name of the property to read.
Clones an object by using the
.
The object to clone.
The object to be cloned must be serializable.
A readonly version of BindingList(Of T)
Type of item contained in the list.
This is a subclass of BindingList(Of T) that implements
a readonly list, preventing adding and removing of items
from the list. Use the IsReadOnly property
to unlock the list for loading/unloading data.
Gets or sets a value indicating whether the list is readonly.
Subclasses can set this value to unlock the collection
in order to alter the collection's data.
True indicates that the list is readonly.
Creates an instance of the object.
Prevents clearing the collection.
Prevents insertion of items into the collection.
Prevents insertion of items into the collection.
Index at which to insert the item.
Item to insert.
Removes the item at the specified index if the collection is
not in readonly mode.
Index of the item to remove.
Replaces the item at the specified index with the
specified item if the collection is not in
readonly mode.
Index of the item to replace.
New item for the list.
Contains event data for the RemovingItem
event.
Gets a reference to the item that was
removed from the list.
Create an instance of the object.
A reference to the item that was
removed from the list.
Event arguments containing a reference
to the new object that was returned
as a result of the Save() operation.
Gets the object that was returned
as a result of the Save() operation.
Creates an instance of the object.
The object that was returned as a
result of the Save() operation.
Implements n-level undo capabilities as
described in Chapters 2 and 3.
Creates an instance of the object.
Returns the current edit level of the object.
This method is invoked after the CopyState
operation is complete.
Copies the state of the object and places the copy
onto the state stack.
This method is invoked after the UndoChanges
operation is complete.
Restores the object's state to the most recently
copied values from the state stack.
Restores the state of the object to its
previous value by taking the data out of
the stack and restoring it into the fields
of the object.
This method is invoked after the AcceptChanges
operation is complete.
Accepts any changes made to the object since the last
state copy was made.
The most recent state copy is removed from the state
stack and discarded, thus committing any changes made
to the object's state.
Provides consistent context information between the client
and server DataPortal objects.
Get or set the current
object representing the user's identity.
This is discussed in Chapter 5. When running
under IIS the HttpContext.Current.User value
is used, otherwise the current Thread.CurrentPrincipal
value is used.
Returns the application-specific context data that
is local to the current AppDomain.
The return value is a HybridDictionary. If one does
not already exist, and empty one is created and returned.
Note that data in this context is NOT transferred to and from
the client and server.
Returns the application-specific context data provided
by the client.
The return value is a HybridDictionary. If one does
not already exist, and empty one is created and returned.
Note that data in this context is transferred from
the client to the server. No data is transferred from
the server to the client.
This property is thread safe in a Windows client
setting and on an application server. It is not guaranteed
to be thread safe within the context of an ASP.NET
client setting (i.e. in your ASP.NET UI).
Returns the application-specific context data shared
on both client and server.
The return value is a HybridDictionary. If one does
not already exist, and empty one is created and returned.
Note that data in this context is transferred to and from
the client and server. Any objects or data in this context
will be transferred bi-directionally across the network.
Clears all context collections.
Returns the authentication type being used by the
CSLA .NET framework.
This value is read from the application configuration
file with the key value "CslaAuthentication". The value
"Windows" indicates CSLA .NET should use Windows integrated
(or AD) security. Any other value indicates the use of
custom security derived from BusinessPrincipalBase.
Returns the channel or network protocol
for the DataPortal server.
Fully qualified assembly/type name of the proxy class.
This value is read from the application configuration
file with the key value "CslaDataPortalProxy".
The proxy class must implement Csla.Server.IDataPortalServer.
The value "Local" is a shortcut to running the DataPortal
"server" in the client process.
Other built-in values include:
-
Csla,Csla.DataPortalClient.RemotingProxy
Use .NET Remoting to communicate with the server
-
Csla,Csla.DataPortalClient.EnterpriseServicesProxy
Use Enterprise Services (DCOM) to communicate with the server
-
Csla,Csla.DataPortalClient.WebServicesProxy
Use Web Services (asmx) to communicate with the server
Each proxy type does require that the DataPortal server be hosted using the appropriate
technology. For instance, Web Services and Remoting should be hosted in IIS, while
Enterprise Services must be hosted in COM+.
Returns the URL for the DataPortal server.
This value is read from the application configuration
file with the key value "CslaDataPortalUrl".
Enum representing the locations code can execute.
The code is executing on the client.
The code is executing on the application server.
Returns a value indicating whether the application code
is currently executing on the client or server.
This is the client-side DataPortal as described in
Chapter 4.
Raised by DataPortal prior to calling the
requested server-side DataPortal method.
Raised by DataPortal after the requested
server-side DataPortal method call is complete.
Called by a factory method in a business class to create
a new object, which is loaded with default
values from the database.
Specific type of the business object.
Object-specific criteria.
A new object, populated with default values.
Called by a factory method in a business class to create
a new object, which is loaded with default
values from the database.
Specific type of the business object.
A new object, populated with default values.
Called by a factory method in a business class to create
a new object, which is loaded with default
values from the database.
Object-specific criteria.
A new object, populated with default values.
Called by a factory method in a business class to retrieve
an object, which is loaded with values from the database.
Specific type of the business object.
Object-specific criteria.
An object populated with values from the database.
Called by a factory method in a business class to retrieve
an object, which is loaded with values from the database.
Specific type of the business object.
An object populated with values from the database.
Called by a factory method in a business class to retrieve
an object, which is loaded with values from the database.
Object-specific criteria.
An object populated with values from the database.
Called to execute a Command object on the server.
To be a Command object, the object must inherit from
CommandBase.
Note that this method returns a reference to the updated business object.
If the server-side DataPortal is running remotely, this will be a new and
different object from the original, and all object references MUST be updated
to use this new object.
On the server, the Command object's DataPortal_Execute() method will
be invoked. Write any server-side code in that method.
Specific type of the Command object.
A reference to the Command object to be executed.
A reference to the updated Command object.
Called to execute a Command object on the server.
Note that this method returns a reference to the updated business object.
If the server-side DataPortal is running remotely, this will be a new and
different object from the original, and all object references MUST be updated
to use this new object.
On the server, the Command object's DataPortal_Execute() method will
be invoked. Write any server-side code in that method.
A reference to the Command object to be executed.
A reference to the updated Command object.
Called by the business object's Save() method to
insert, update or delete an object in the database.
Note that this method returns a reference to the updated business object.
If the server-side DataPortal is running remotely, this will be a new and
different object from the original, and all object references MUST be updated
to use this new object.
Specific type of the business object.
A reference to the business object to be updated.
A reference to the updated business object.
Called by the business object's Save() method to
insert, update or delete an object in the database.
Note that this method returns a reference to the updated business object.
If the server-side DataPortal is running remotely, this will be a new and
different object from the original, and all object references MUST be updated
to use this new object.
A reference to the business object to be updated.
A reference to the updated business object.
Called by a Shared (static in C#) method in the business class to cause
immediate deletion of a specific object from the database.
Object-specific criteria.
Implements a data portal proxy to relay data portal
calls to an application server hosted in COM+.
Override this method to return a reference to
the server-side COM+ (ServicedComponent) object
implementing the data portal server functionality.
Called by to create a
new business object.
Type of business object to create.
Criteria object describing business object.
object passed to the server.
Called by to load an
existing business object.
Type of business object to retrieve.
Criteria object describing business object.
object passed to the server.
Called by to update a
business object.
The business object to update.
object passed to the server.
Called by to delete a
business object.
Criteria object describing business object.
object passed to the server.
Get a value indicating whether this proxy will invoke
a remote data portal server, or run the "server-side"
data portal in the caller's process and AppDomain.
Interface implemented by client-side
data portal proxy objects.
Get a value indicating whether this proxy will invoke
a remote data portal server, or run the "server-side"
data portal in the caller's process and AppDomain.
Implements a data portal proxy to relay data portal
calls to an application server hosted locally
in the client process and AppDomain.
Called by to create a
new business object.
Type of business object to create.
Criteria object describing business object.
object passed to the server.
Called by to load an
existing business object.
Type of business object to retrieve.
Criteria object describing business object.
object passed to the server.
Called by to update a
business object.
The business object to update.
object passed to the server.
Called by to delete a
business object.
Criteria object describing business object.
object passed to the server.
Get a value indicating whether this proxy will invoke
a remote data portal server, or run the "server-side"
data portal in the caller's process and AppDomain.
Implements a data portal proxy to relay data portal
calls to a remote application server by using the
.NET Remoting technology.
Configure .NET Remoting to use a binary
serialization technology even when using
the HTTP channel. Also ensures that the
user's Windows credentials are passed to
the server appropriately.
Called by to create a
new business object.
Type of business object to create.
Criteria object describing business object.
object passed to the server.
Called by to load an
existing business object.
Type of business object to retrieve.
Criteria object describing business object.
object passed to the server.
Called by to update a
business object.
The business object to update.
object passed to the server.
Called by to delete a
business object.
Criteria object describing business object.
object passed to the server.
Get a value indicating whether this proxy will invoke
a remote data portal server, or run the "server-side"
data portal in the caller's process and AppDomain.
Implements a data portal proxy to relay data portal
calls to a remote application server by using
Web services.
Called by to create a
new business object.
Type of business object to create.
Criteria object describing business object.
object passed to the server.
Called by to load an
existing business object.
Type of business object to retrieve.
Criteria object describing business object.
object passed to the server.
Called by to update a
business object.
The business object to update.
object passed to the server.
Called by to delete a
business object.
Criteria object describing business object.
object passed to the server.
Get a value indicating whether this proxy will invoke
a remote data portal server, or run the "server-side"
data portal in the caller's process and AppDomain.
Base type from which Criteria classes can be
derived in a business class.
Type of the business object to be instantiated by
the server-side DataPortal.
Initializes CriteriaBase with the type of
business object to be created by the DataPortal.
The type of the
business object the data portal should create.
Provides information about the DataPortal
call.
The DataPortalContext object passed to the
server-side DataPortal.
Creates an instance of the object.
Data portal context object.
This exception is returned for any errors occuring
during the server-side DataPortal invocation.
Returns a reference to the business object
from the server-side DataPortal.
Remember that this object may be in an invalid
or undefined state. This is the business object
(and any child objects) as it existed when the
exception occured on the server. Thus the object
state may have been altered by the server and
may no longer reflect data in the database.
Gets the original server-side exception.
An exception object.
When an exception occurs in business code behind
the data portal, it is wrapped in a
, which
is then wrapped in a
. This property
unwraps and returns the original exception
thrown by the business code on the server.
Get the combined stack trace from the server
and client.
Creates an instance of the object.
Text describing the exception.
The business object
as it was at the time of the exception.
Creates an instance of the object.
Text describing the exception.
Inner exception.
The business object
as it was at the time of the exception.
Creates an instance of the object for serialization.
Serialiation info object.
Serialization context object.
Serializes the object.
Serialiation info object.
Serialization context object.
Exposes server-side DataPortal functionality
through Enterprise Services.
Set up event handler to deal with
serialization issue as discussed
in Chapter 4.
Create a new business object.
Type of business object to create.
Criteria object describing business object.
object passed to the server.
Get an existing business object.
Type of business object to retrieve.
Criteria object describing business object.
object passed to the server.
Update a business object.
Business object to update.
object passed to the server.
Delete a business object.
Criteria object describing business object.
object passed to the server.
Exposes server-side DataPortal functionality
through .NET Remoting.
Create a new business object.
Type of business object to create.
Criteria object describing business object.
object passed to the server.
Get an existing business object.
Type of business object to retrieve.
Criteria object describing business object.
object passed to the server.
Update a business object.
Business object to update.
object passed to the server.
Delete a business object.
Criteria object describing business object.
object passed to the server.
Exposes server-side DataPortal functionality
through Web Services (asmx).
Request message for creating
a new business object.
Type of business object to create.
Criteria object describing business object.
Data portal context from client.
Request message for retrieving
an existing business object.
Type of business object to create.
Criteria object describing business object.
Data portal context from client.
Request message for updating
a business object.
Business object to be updated.
Data portal context from client.
Request message for deleting
a business object.
Criteria object describing business object.
Data portal context from client.
Create a new business object.
Byte stream containing .
Byte stream containing resulting object data.
Get an existing business object.
Byte stream containing .
Byte stream containing resulting object data.
Update a business object.
Byte stream containing .
Byte stream containing resulting object data.
Delete a business object.
Byte stream containing .
Byte stream containing resulting object data.
This exception is returned from the
CallMethod method in the server-side DataPortal
and contains the exception thrown by the
underlying business object method that was
being invoked.
Get the stack trace from the original
exception.
Creates an instance of the object.
Message text describing the exception.
Inner exception object.
Creates an instance of the object for deserialization.
Serialization info.
Serialiation context.
Serializes the object.
Serialization info.
Serialization context.
Implements the server-side DataPortal
message router as discussed
in Chapter 4.
Create a new business object.
Type of business object to create.
Criteria object describing business object.
object passed to the server.
Get an existing business object.
Type of business object to retrieve.
Criteria object describing business object.
object passed to the server.
Update a business object.
Business object to update.
object passed to the server.
Delete a business object.
Criteria object describing business object.
object passed to the server.
Provides consistent context information between the client
and server DataPortal objects.
The current principal object
if CSLA security is being used.
Returns if the
server-side DataPortal is running
on a remote server via remoting.
The culture setting on the client
workstation.
The culture setting on the client
workstation.
Creates a new DataPortalContext object.
The current Principal object.
Indicates whether the DataPortal is remote.
This exception is returned from the
server-side DataPortal and contains the exception
and context data from the server.
Returns the DataPortalResult object from the server.
Get the server-side stack trace from the
original exception.
Creates an instance of the object.
Text describing the exception.
Inner exception.
The data portal result object.
Creates an instance of the object for serialization.
Serialiation info object.
Serialization context object.
Serializes the object.
Serialiation info object.
Serialization context object.
Returns data from the server-side DataPortal to the
client-side DataPortal. Intended for internal CSLA .NET
use only.
The business object being returned from
the server.
The global context being returned from
the server.
Creates an instance of the object.
Creates an instance of the object.
Object to return as part
of the result.
Interface implemented by server-side data portal
components.
Create a new business object.
Type of business object to create.
Criteria object describing business object.
object passed to the server.
Get an existing business object.
Type of business object to retrieve.
Criteria object describing business object.
object passed to the server.
Update a business object.
Business object to update.
object passed to the server.
Delete a business object.
Criteria object describing business object.
object passed to the server.
Implements the server-side Serviced
DataPortal described in Chapter 4.
Wraps a Create call in a ServicedComponent.
This method delegates to
SimpleDataPortal
but wraps that call within a COM+ transaction
to provide transactional support.
A Type object
indicating the type of business object to be created.
A custom criteria object providing any
extra information that may be required to properly create
the object.
Context data from the client.
A populated business object.
Wraps a Fetch call in a ServicedComponent.
This method delegates to
SimpleDataPortal
but wraps that call within a COM+ transaction
to provide transactional support.
Type of business object to retrieve.
Object-specific criteria.
Object containing context data from client.
A populated business object.
Wraps an Update call in a ServicedComponent.
This method delegates to
SimpleDataPortal
but wraps that call within a COM+ transaction
to provide transactional support.
A reference to the object being updated.
Context data from the client.
A reference to the newly updated object.
Wraps a Delete call in a ServicedComponent.
This method delegates to
SimpleDataPortal
but wraps that call within a COM+ transaction
to provide transactional support.
Object-specific criteria.
Context data from the client.
Implements the server-side DataPortal as discussed
in Chapter 4.
Create a new business object.
Type of business object to create.
Criteria object describing business object.
object passed to the server.
Get an existing business object.
Type of business object to retrieve.
Criteria object describing business object.
object passed to the server.
Update a business object.
Business object to update.
object passed to the server.
Delete a business object.
Criteria object describing business object.
object passed to the server.
Implements the server-side Serviced
DataPortal described in Chapter 4.
Wraps a Create call in a TransactionScope
This method delegates to
SimpleDataPortal
but wraps that call within a
TransactionScope
to provide transactional support via
System.Transactions.
A Type object
indicating the type of business object to be created.
A custom criteria object providing any
extra information that may be required to properly create
the object.
Context data from the client.
A populated business object.
Called by the client-side DataProtal to retrieve an object.
This method delegates to
SimpleDataPortal
but wraps that call within a
TransactionScope
to provide transactional support via
System.Transactions.
Type of business object to retrieve.
Object-specific criteria.
Object containing context data from client.
A populated business object.
Called by the client-side DataPortal to update an object.
This method delegates to
SimpleDataPortal
but wraps that call within a
TransactionScope
to provide transactional support via
System.Transactions.
A reference to the object being updated.
Context data from the client.
A reference to the newly updated object.
Called by the client-side DataPortal to delete an object.
This method delegates to
SimpleDataPortal
but wraps that call within a
TransactionScope
to provide transactional support via
System.Transactions.
Object-specific criteria.
Context data from the client.
Gets a reference to the DataPortal_Create method for
the specified business object type.
Type of the business object.
Criteria parameter value.
If the criteria parameter value is an integer, that is a special
flag indicating that the parameter should be considered missing
(not Nothing/null - just not there).
Gets a reference to the DataPortal_Fetch method for
the specified business object type.
Type of the business object.
Criteria parameter value.
If the criteria parameter value is an integer, that is a special
flag indicating that the parameter should be considered missing
(not Nothing/null - just not there).
Uses reflection to dynamically invoke a method
if that method is implemented on the target object.
Uses reflection to dynamically invoke a method,
throwing an exception if it is not
implemented on the target object.
Uses reflection to dynamically invoke a method,
throwing an exception if it is not
implemented on the target object.
Uses reflection to locate a matching method
on the target object.
Returns a business object type based on
the supplied criteria object.
Returns information about the specified
method, even if the parameter types are
generic and are located in an abstract
generic base class.
Returns information about the specified
method, finding the method based purely
on the method name and number of parameters.
Marks a DataPortal_XYZ method to
be run on the client even if the server-side
DataPortal is configured for remote use.
Marks a DataPortal_XYZ method to run within
the specified transactional context.
Each business object method may be marked with this attribute
to indicate which type of transactional technology should
be used by the server-side DataPortal. The possible options
are listed in the
TransactionalTypes enum.
If the Transactional attribute is not applied to a
DataPortal_XYZ method then the
Manual option
is assumed.
If the Transactional attribute is applied with no explicit
choice for transactionType then the
EnterpriseServices
option is assumed.
Both the EnterpriseServices and TransactionScope options provide
2-phase distributed transactional support.
Marks a method to run within a COM+
transactional context.
Marks a method to run within the specified
type of transactional context.
Specifies the transactional context within which the
method should run.
Gets the type of transaction requested by the
business object method.
Provides a list of possible transactional
technologies to be used by the server-side
DataPortal.
Causes the server-side DataPortal to
use Enterprise Services (COM+) transactions.
Causes the server-side DataPortal to
use System.Transactions TransactionScope
style transactions.
Causes the server-side DataPortal to
use no explicit transactional technology.
This option allows the business developer to
implement their own transactions. Common options
include ADO.NET transactions and System.Transactions
TransactionScope.
Map data from a source into a target object
by copying public property values.
Copies values from the source into the
properties of the target.
A name/value dictionary containing the source values.
An object with properties to be set from the dictionary.
The key names in the dictionary must match the property names on the target
object. Target properties may not be readonly or indexed.
Copies values from the source into the
properties of the target.
A name/value dictionary containing the source values.
An object with properties to be set from the dictionary.
A list of property names to ignore.
These properties will not be set on the target object.
The key names in the dictionary must match the property names on the target
object. Target properties may not be readonly or indexed.
Copies values from the source into the
properties of the target.
A name/value dictionary containing the source values.
An object with properties to be set from the dictionary.
A list of property names to ignore.
These properties will not be set on the target object.
If , any exceptions will be supressed.
The key names in the dictionary must match the property names on the target
object. Target properties may not be readonly or indexed.
Copies values from the source into the
properties of the target.
An object containing the source values.
An object with properties to be set from the dictionary.
The property names and types of the source object must match the property names and types
on the target object. Source properties may not be indexed.
Target properties may not be readonly or indexed.
Copies values from the source into the
properties of the target.
An object containing the source values.
An object with properties to be set from the dictionary.
A list of property names to ignore.
These properties will not be set on the target object.
The property names and types of the source object must match the property names and types
on the target object. Source properties may not be indexed.
Target properties may not be readonly or indexed.
Copies values from the source into the
properties of the target.
An object containing the source values.
An object with properties to be set from the dictionary.
A list of property names to ignore.
These properties will not be set on the target object.
If , any exceptions will be supressed.
The property names and types of the source object must match the property names and types
on the target object. Source properties may not be indexed.
Target properties may not be readonly or indexed.
Properties to copy are determined based on the source object. Any properties
on the source object marked with the equal
to false are ignored.
Sets an object's property with the specified value,
coercing that value to the appropriate type if possible.
Object containing the property to set.
Name of the property to set.
Value to set into the property.
An ObjectAdapter is used to convert data in an object
or collection into a DataTable.
Fills the DataSet with data from an object or collection.
The name of the DataTable being filled is will be the class name of
the object acting as the data source. The
DataTable will be inserted if it doesn't already exist in the DataSet.
A reference to the DataSet to be filled.
A reference to the object or collection acting as a data source.
Fills the DataSet with data from an object or collection.
The name of the DataTable being filled is specified as a parameter. The
DataTable will be inserted if it doesn't already exist in the DataSet.
A reference to the DataSet to be filled.
A reference to the object or collection acting as a data source.
Fills a DataTable with data values from an object or collection.
A reference to the DataTable to be filled.
A reference to the object or collection acting as a data source.
This is a DataReader that 'fixes' any null values before
they are returned to our business code.
Get a reference to the underlying data reader
object that actually contains the data from
the data source.
Initializes the SafeDataReader object to use data from
the provided DataReader object.
The source DataReader object containing the data.
Gets a string value from the datareader.
Returns empty string for null.
Name of the column containing the value.
Gets a string value from the datareader.
Returns empty string for null.
Ordinal column position of the value.
Gets a value of type from the datareader.
Name of the column containing the value.
Gets a value of type from the datareader.
Ordinal column position of the value.
Gets an integer from the datareader.
Returns 0 for null.
Name of the column containing the value.
Gets an integer from the datareader.
Returns 0 for null.
Ordinal column position of the value.
Gets a double from the datareader.
Returns 0 for null.
Name of the column containing the value.
Gets a double from the datareader.
Returns 0 for null.
Ordinal column position of the value.
Gets a from the datareader.
A null is converted into min possible date
See Chapter 5 for more details on the SmartDate class.
Name of the column containing the value.
Gets a from the datareader.
A null is converted into the min possible date
See Chapter 5 for more details on the SmartDate class.
Ordinal column position of the value.
Gets a from the datareader.
A null is converted into either the min or max possible date
depending on the MinIsEmpty parameter. See Chapter 5 for more
details on the SmartDate class.
Name of the column containing the value.
A flag indicating whether the min or max
value of a data means an empty date.
Gets a from the datareader.
Ordinal column position of the value.
A flag indicating whether the min or max
value of a data means an empty date.
Gets a Guid value from the datareader.
Returns Guid.Empty for null.
Name of the column containing the value.
Gets a Guid value from the datareader.
Returns Guid.Empty for null.
Ordinal column position of the value.
Reads the next row of data from the datareader.
Moves to the next result set in the datareader.
Closes the datareader.
Returns the depth property value from the datareader.
Returns the FieldCount property from the datareader.
Gets a boolean value from the datareader.
Returns for null.
Name of the column containing the value.
Gets a boolean value from the datareader.
Returns for null.
Ordinal column position of the value.
Gets a byte value from the datareader.
Returns 0 for null.
Name of the column containing the value.
Gets a byte value from the datareader.
Returns 0 for null.
Ordinal column position of the value.
Invokes the GetBytes method of the underlying datareader.
Returns 0 for null.
Name of the column containing the value.
Array containing the data.
Offset position within the buffer.
Offset position within the field.
Length of data to read.
Invokes the GetBytes method of the underlying datareader.
Returns 0 for null.
Ordinal column position of the value.
Array containing the data.
Offset position within the buffer.
Offset position within the field.
Length of data to read.
Gets a char value from the datareader.
Returns Char.MinValue for null.
Name of the column containing the value.
Gets a char value from the datareader.
Returns Char.MinValue for null.
Ordinal column position of the value.
Invokes the GetChars method of the underlying datareader.
Returns 0 for null.
Name of the column containing the value.
Array containing the data.
Offset position within the buffer.
Offset position within the field.
Length of data to read.
Invokes the GetChars method of the underlying datareader.
Returns 0 for null.
Ordinal column position of the value.
Array containing the data.
Offset position within the buffer.
Offset position within the field.
Length of data to read.
Invokes the GetData method of the underlying datareader.
Name of the column containing the value.
Invokes the GetData method of the underlying datareader.
Ordinal column position of the value.
Invokes the GetDataTypeName method of the underlying datareader.
Name of the column containing the value.
Invokes the GetDataTypeName method of the underlying datareader.
Ordinal column position of the value.
Gets a date value from the datareader.
Returns DateTime.MinValue for null.
Name of the column containing the value.
Gets a date value from the datareader.
Returns DateTime.MinValue for null.
Ordinal column position of the value.
Gets a decimal value from the datareader.
Returns 0 for null.
Name of the column containing the value.
Gets a decimal value from the datareader.
Returns 0 for null.
Ordinal column position of the value.
Invokes the GetFieldType method of the underlying datareader.
Name of the column containing the value.
Invokes the GetFieldType method of the underlying datareader.
Ordinal column position of the value.
Gets a Single value from the datareader.
Returns 0 for null.
Name of the column containing the value.
Gets a Single value from the datareader.
Returns 0 for null.
Ordinal column position of the value.
Gets a Short value from the datareader.
Returns 0 for null.
Name of the column containing the value.
Gets a Short value from the datareader.
Returns 0 for null.
Ordinal column position of the value.
Gets a Long value from the datareader.
Returns 0 for null.
Name of the column containing the value.
Gets a Long value from the datareader.
Returns 0 for null.
Ordinal column position of the value.
Invokes the GetName method of the underlying datareader.
Ordinal column position of the value.
Gets an ordinal value from the datareader.
Name of the column containing the value.
Invokes the GetSchemaTable method of the underlying datareader.
Invokes the GetValues method of the underlying datareader.
An array of System.Object to
copy the values into.
Returns the IsClosed property value from the datareader.
Invokes the IsDBNull method of the underlying datareader.
Ordinal column position of the value.
Returns a value from the datareader.
Name of the column containing the value.
Returns a value from the datareader.
Ordinal column position of the value.
Returns the RecordsAffected property value from the underlying datareader.
Disposes the object.
True if called by
the public Dispose method.
Disposes the object.
Object finalizer.
This is the base class from which collections
of editable root business objects should be
derived.
Type of editable root object to contain within
the collection.
Your subclass should implement a factory method
and should override or overload
DataPortal_Fetch() to implement data retrieval.
Saving (inserts or updates) of items in the collection
should be handled through the SaveItem() method on
the collection.
Removing an item from the collection
through Remove() or RemoveAt() causes immediate deletion
of the object, by calling the object's Delete() and
Save() methods.
Saves the specified item in the list.
Reference to the item to be saved.
This method properly saves the child item,
by making sure the item in the collection
is properly replaced by the result of the
Save() method call.
Saves the specified item in the list.
Index of the item to be saved.
This method properly saves the child item,
by making sure the item in the collection
is properly replaced by the result of the
Save() method call.
Gives the new object a parent reference to this
list.
Index at which to insert the item.
Item to insert.
Removes an item from the list.
Index of the item
to be removed.
This method is called on a newly deserialized object
after deserialization is complete.
Serialization context object.
Override this method to allow retrieval of an existing business
object based on data in the database.
An object containing criteria values to identify the object.
Called by the server-side DataPortal prior to calling the
requested DataPortal_xyz method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal after calling the
requested DataPortal_xyz method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal if an exception
occurs during data access.
The DataPortalContext object passed to the DataPortal.
The Exception thrown during data access.
Provides a filtered view into an existing IList(Of T).
The type of the objects contained
in the original list.
Gets an enumerator object.
Implemented by IList source object.
Property on which
to build the index.
Implemented by IList source object.
Implemented by IList source object.
Implemented by IList source object.
Implemented by IList source object.
Sorts the list if the original list
supports sorting.
Property on which to sort.
Direction of the sort.
Finds an item in the view
Name of the property to search
Value to find
Implemented by IList source object.
Key value for which to search.
Property to search for the key
value.
Returns True if the view is currently sorted.
Raised to indicate that the list's data has changed.
This event is raised if the underling IList object's data changes
(assuming the underling IList also implements the IBindingList
interface). It is also raised if the filter
is changed to indicate that the view's data has changed.
Raises the ListChanged event.
Parameter for the event.
Implemented by IList source object.
Property for which the
index should be removed.
Removes any sort currently applied to the view.
Returns the direction of the current sort.
Returns the PropertyDescriptor of the current sort.
Returns True since this object does raise the
ListChanged event.
Implemented by IList source object.
Returns True. Sorting is supported.
Copies the contents of the list to
an array.
Array to receive the data.
Starting array index.
Gets the number of items in the list.
Adds an item to the list.
Item to be added.
Clears the list.
Determines whether the specified
item is contained in the list.
Item to find.
if the item is
contained in the list.
Gets the 0-based index of an
item in the list.
The item to find.
0-based index of the item
in the list.
Inserts an item into the list.
Index at
which to insert the item.
Item to insert.
Gets a value indicating whether the list
is read-only.
Removes an item from the list.
Item to remove.
if the
remove succeeds.
Removes an item from the list.
Index of item
to be removed.
Gets or sets the item at
the specified index.
Index of the item.
Item at the specified index.
Creates a new view based on the provided IList object.
The IList (collection) containing the data.
Creates a new view based on the provided IList object.
The IList (collection) containing the data.
Delegate pointer to a method that implements the filter behavior.
Gets or sets the filter provider method.
Delegate pointer to a method that implements the filter behavior.
Delegate pointer to a method that implements the filter behavior.
If this value is set to Nothing (null in C#) then the default
filter provider, will be used.
The property on which the items will be filtered.
A descriptor for the property on which
the items in the collection will be filtered.
Returns True if the view is currently filtered.
Applies a filter to the view.
The text name of the property on which to filter.
The filter criteria.
Applies a filter to the view.
A PropertyDescriptor for the property on which to filter.
The filter criteria.
Removes the filter from the list,
so the view reflects the state of
the original list.
Defines the method signature for a filter
provider method used by FilteredBindingList.
The object to be filtered.
The filter criteria.
if the item matches the filter.
This is the base class from which readonly name/value
collections should be derived.
Type of the key values.
Type of the values.
Returns the value corresponding to the
specified key.
Key value for which to retrieve a value.
Returns the key corresponding to the
first occurance of the specified value
in the list.
Value for which to retrieve the key.
Gets a value indicating whether the list contains the
specified key.
Key value for which to search.
Gets a value indicating whether the list contains the
specified value.
Value for which to search.
Creates an instance of the object.
Override this method to set up event handlers so user
code in a partial class can respond to events raised by
generated code.
Contains a key and value pair.
The Key or Name value.
The Value corresponding to the key/name.
Creates an instance of the object.
The key.
The value.
Creates a clone of the object.
A new object containing the exact data of the original object.
Creates a clone of the object.
Default Criteria for retrieving simple
name/value lists.
This criteria merely specifies the type of
collection to be retrieved. That type information
is used by the DataPortal to create the correct
type of collection object during data retrieval.
Creates an instance of the object.
The of the business
collection class.
Override this method to allow retrieval of an existing business
object based on data in the database.
An object containing criteria values to identify the object.
Called by the server-side DataPortal prior to calling the
requested DataPortal_XYZ method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal after calling the
requested DataPortal_XYZ method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal if an exception
occurs during data access.
The DataPortalContext object passed to the DataPortal.
The Exception thrown during data access.
Marks a field to indicate that the value should not
be copied as part of the undo process.
Marking a variable with this attribute will cause the n-level
undo process to ignore that variable's value. The value will
not be included in a snapshot when BeginEdit is called, nor
will it be restored when CancelEdit is called.
A strongly-typed resource class, for looking up localized strings, etc.
Returns the cached ResourceManager instance used by this class.
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
Looks up a localized string similar to Principal must be of type BusinessPrincipal, not.
Looks up a localized string similar to Changing an element is an invalid operation.
Looks up a localized string similar to Can not directly mark a child object for deletion - use its parent collection.
Looks up a localized string similar to Clear is an invalid operation.
Looks up a localized string similar to Invalid operation - create not allowed.
Looks up a localized string similar to Invalid operation - delete not allowed.
Looks up a localized string similar to Error reading value:.
Looks up a localized string similar to Invalid operation - execute not allowed.
Looks up a localized string similar to failed.
Looks up a localized string similar to failed on the server.
Looks up a localized string similar to Invalid operation - fetch not allowed.
Looks up a localized string similar to GetIdValue must not return Nothing.
Looks up a localized string similar to Insert is an invalid operation.
Looks up a localized string similar to Invalid operation - insert not allowed.
Looks up a localized string similar to Invalid rule method (instance methods of the target object not allowed).
Looks up a localized string similar to {0} can not exceed {1}.
Looks up a localized string similar to method call failed.
Looks up a localized string similar to not implemented.
Looks up a localized string similar to {0} can not be less than {1}.
Looks up a localized string similar to ApplyEdit is not valid on a child object.
Looks up a localized string similar to BeginEdit is not valid on a child object.
Looks up a localized string similar to CancelEdit is not valid on a child object.
Looks up a localized string similar to Invalid for root objects - use Delete instead.
Looks up a localized string similar to No principal object should be passed to DataPortal when using Windows integrated security.
Looks up a localized string similar to Can not directly save a child object.
Looks up a localized string similar to Object is still being edited and can not be saved.
Looks up a localized string similar to Object is not valid and can not be saved.
Looks up a localized string similar to No such value exists:.
Looks up a localized string similar to Argument must not be Nothing.
Looks up a localized string similar to Parent value can only be set for child objects.
Looks up a localized string similar to Type parameter must be a primitive type.
Looks up a localized string similar to Property copy failed.
Looks up a localized string similar to Property get not allowed.
Looks up a localized string similar to Property set not allowed.
Looks up a localized string similar to {0} does not match regular expression.
Looks up a localized string similar to Remove is an invalid operation.
Looks up a localized string similar to t.
Looks up a localized string similar to today.
Looks up a localized string similar to tom.
Looks up a localized string similar to tomorrow.
Looks up a localized string similar to y.
Looks up a localized string similar to yesterday.
Looks up a localized string similar to {0} can not exceed {1} characters.
Looks up a localized string similar to {0} required.
Looks up a localized string similar to String value can not be converted to a date.
Looks up a localized string similar to Failed to load type '{0}'.
Looks up a localized string similar to Invalid operation - update not allowed.
Looks up a localized string similar to Value is not a SmartDate.
This is a base class from which readonly business classes
can be derived.
This base class only supports data retrieve, not updating or
deleting. Any business classes derived from this base class
should only implement readonly properties.
Type of the business object.
Override this method to return a unique identifying
vlaue for this object.
If you can not provide a unique identifying value, it
is best if you can generate such a unique value (even
temporarily). If you can not do that, then return
and then manually override the
, and
methods in your business object.
Compares this object for equality with another object, using
the results of to determine
equality.
The object to be compared.
Returns a hash code value for this object, based on
the results of .
Returns a text representation of this object by
returning the value
in text form.
Creates an instance of the object.
Override this method to set up event handlers so user
code in a partial class can respond to events raised by
generated code.
Override this method to add authorization
rules for your object's properties.
Override this method to add per-type
authorization rules for your type's properties.
AddSharedAuthorizationRules is automatically called by CSLA .NET
when your object should associate per-type authorization roles
with its properties.
Provides access to the AuthorizationRules object for this
object.
Use this object to add a list of allowed and denied roles for
reading and writing properties of the object. Typically these
values are added once when the business object is instantiated.
Returns if the user is allowed to read the
calling property.
if read is allowed.
Indicates whether a negative
result should cause an exception.
Returns if the user is allowed to read the
calling property.
if read is allowed.
Name of the property to read.
Indicates whether a negative
result should cause an exception.
Returns if the user is allowed to read the
calling property.
if read is allowed.
Returns if the user is allowed to read the
specified property.
Name of the property to read.
if read is allowed.
If a list of allowed roles is provided then only users in those
roles can read. If no list of allowed roles is provided then
the list of denied roles is checked.
If a list of denied roles is provided then users in the denied
roles are denied read access. All other users are allowed.
If neither a list of allowed nor denied roles is provided then
all users will have read access.
Creates a clone of the object.
A new object containing the exact data of the original object.
Creates a clone of the object.
A new object containing the exact data of the original object.
Override this method to allow retrieval of an existing business
object based on data in the database.
An object containing criteria values to identify the object.
Called by the server-side DataPortal prior to calling the
requested DataPortal_xyz method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal after calling the
requested DataPortal_xyz method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal if an exception
occurs during data access.
The DataPortalContext object passed to the DataPortal.
The Exception thrown during data access.
This method is called on a newly deserialized object
after deserialization is complete.
Serialization context object.
This is the base class from which readonly collections
of readonly objects should be derived.
Type of the list class.
Type of child objects contained in the list.
Creates an instance of the object.
Override this method to set up event handlers so user
code in a partial class can respond to events raised by
generated code.
Creates a clone of the object.
A new object containing the exact data of the original object.
Creates a clone of the object.
A new object containing the exact data of the original object.
Override this method to allow retrieval of an existing business
object based on data in the database.
An object containing criteria values to identify the object.
Called by the server-side DataPortal prior to calling the
requested DataPortal_xyz method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal after calling the
requested DataPortal_xyz method.
The DataPortalContext object passed to the DataPortal.
Called by the server-side DataPortal if an exception
occurs during data access.
The DataPortalContext object passed to the DataPortal.
The Exception thrown during data access.
The access types supported by authorization
as discussed in Chapter 3.
Roles allowed to read property.
Roles denied read access to property.
Roles allowed to set property.
Roles denied write access to property.
Maintains a list of allowed and denied user roles
for each property.
Creates an instance of the object, initializing
it with the business object type.
Type of the business object to which the rules
apply.
Specify the roles allowed to read a given
property.
Name of the property.
List of roles granted read access.
This method may be called multiple times, with the roles in
each call being added to the end of the list of allowed roles.
In other words, each call is cumulative, adding more roles
to the list.
Specify the roles denied read access to
a given property.
Name of the property.
List of roles denied read access.
This method may be called multiple times, with the roles in
each call being added to the end of the list of denied roles.
In other words, each call is cumulative, adding more roles
to the list.
Specify the roles allowed to write a given
property.
Name of the property.
List of roles granted write access.
This method may be called multiple times, with the roles in
each call being added to the end of the list of allowed roles.
In other words, each call is cumulative, adding more roles
to the list.
Specify the roles denied write access to
a given property.
Name of the property.
List of roles denied write access.
This method may be called multiple times, with the roles in
each call being added to the end of the list of denied roles.
In other words, each call is cumulative, adding more roles
to the list.
Specify the roles allowed to read a given
property.
Name of the property.
List of roles granted read access.
This method may be called multiple times, with the roles in
each call being added to the end of the list of allowed roles.
In other words, each call is cumulative, adding more roles
to the list.
Specify the roles denied read access to
a given property.
Name of the property.
List of roles denied read access.
This method may be called multiple times, with the roles in
each call being added to the end of the list of denied roles.
In other words, each call is cumulative, adding more roles
to the list.
Specify the roles allowed to write a given
property.
Name of the property.
List of roles granted write access.
This method may be called multiple times, with the roles in
each call being added to the end of the list of allowed roles.
In other words, each call is cumulative, adding more roles
to the list.
Specify the roles denied write access to
a given property.
Name of the property.
List of roles denied write access.
This method may be called multiple times, with the roles in
each call being added to the end of the list of denied roles.
In other words, each call is cumulative, adding more roles
to the list.
Indicates whether the property has a list
of roles granted read access.
Name of the property.
Indicates whether the current user as defined by
is explicitly allowed to read the property.
Name of the property.
Indicates whether the property has a list
of roles denied read access.
Name of the property.
Indicates whether the current user as defined by
is explicitly denied read access to the property.
Name of the property.
Indicates whether the property has a list
of roles granted write access.
Name of the property.
Indicates whether the current user as defined by
is explicitly allowed to set the property.
Name of the property.
Indicates whether the property has a list
of roles denied write access.
Name of the property.
Indicates whether the current user as defined by
is explicitly denied write access to the property.
Name of the property.
Maintains authorization roles for a business object
or business object type.
Base class from which custom principal
objects should inherit to operate
properly with the data portal.
Returns the user's identity object.
Returns a value indicating whether the
user is in a given role.
Name of the role.
Creates an instance of the object.
Identity object for the user.
Defines the authorization interface through which an
object can indicate which properties the current
user can read and write.
Returns if the user is allowed to write the
to the specified property.
if write is allowed.
Name of the property to read.
Returns if the user is allowed to read the
specified property.
if read is allowed.
Name of the property to read.
Maintains a list of allowed and denied
user roles for a specific property.
Returns a List(Of string) containing the list
of roles allowed read access.
Returns a List(Of string) containing the list
of roles denied read access.
Returns a List(Of string) containing the list
of roles allowed write access.
Returns a List(Of string) containing the list
of roles denied write access.
Returns if the user is in a role
explicitly allowed read access.
A
representing the user.
if the user is allowed read access.
Returns if the user is in a role
explicitly denied read access.
A
representing the user.
if the user is denied read access.
Returns if the user is in a role
explicitly allowed write access.
A
representing the user.
if the user is allowed write access.
Returns if the user is in a role
explicitly denied write access.
A
representing the user.
if the user is denied write access.
Maintains a list of all the per-type
objects
loaded in memory.
Gets the for the
specified object type, optionally creating a new instance
of the object if necessary.
Type of business object for which the rules apply.
Indicates whether to create
a new instance of the object if one doesn't exist.
Gets a value indicating whether a set of rules
have been created for a given .
Type of business object for which the rules apply.
if rules exist for the type.
Provides a date data type that understands the concept
of an empty date value.
See Chapter 5 for a full discussion of the need for this
data type and the design choices behind it.
Indicates the empty value of a
SmartDate.
Indicates that an empty SmartDate
is the smallest date.
Indicates that an empty SmartDate
is the largest date.
Creates a new SmartDate object.
Indicates whether an empty date is the min or max date value.
Creates a new SmartDate object.
Indicates whether an empty date is the min or max date value.
Creates a new SmartDate object.
The SmartDate created will use the min possible
date to represent an empty date.
The initial value of the object.
Creates a new SmartDate object.
The initial value of the object.
Indicates whether an empty date is the min or max date value.
Creates a new SmartDate object.
The initial value of the object.
Indicates whether an empty date is the min or max date value.
Creates a new SmartDate object.
The SmartDate created will use the min possible
date to represent an empty date.
The initial value of the object (as text).
Creates a new SmartDate object.
The initial value of the object (as text).
Indicates whether an empty date is the min or max date value.
Creates a new SmartDate object.
The initial value of the object (as text).
Indicates whether an empty date is the min or max date value.
Sets the global default format string used by all new
SmartDate values going forward.
The default global format string is "d" unless this
method is called to change that value. Existing SmartDate
values are unaffected by this method, only SmartDate
values created after calling this method are affected.
The format string should follow the requirements for the
.NET System.String.Format statement.
Gets or sets the format string used to format a date
value when it is returned as text.
The format string should follow the requirements for the
.NET System.String.Format statement.
A format string.
Gets or sets the date value.
This property can be used to set the date value by passing a
text representation of the date. Any text date representation
that can be parsed by the .NET runtime is valid.
When the date value is retrieved via this property, the text
is formatted by using the format specified by the
property. The default is the
short date format (d).
Gets or sets the date value.
Returns a text representation of the date value.
Returns a text representation of the date value.
A standard .NET format string.
Compares this object to another
for equality.
Object to compare for equality.
Returns a hash code for this object.
Gets a database-friendly version of the date value.
If the SmartDate contains an empty date, this returns .
Otherwise the actual date value is returned as type Date.
This property is very useful when setting parameter values for
a Command object, since it automatically stores null values into
the database for empty date values.
When you also use the SafeDataReader and its GetSmartDate method,
you can easily read a null value from the database back into a
SmartDate object so it remains considered as an empty date value.
Gets a value indicating whether this object contains an empty date.
Gets a value indicating whether an empty date is the
min or max possible date value.
Whether an empty date is considered to be the smallest or largest possible
date is only important for comparison operations. This allows you to
compare an empty date with a real date and get a meaningful result.
Converts a string value into a SmartDate.
String containing the date value.
A new SmartDate containing the date value.
EmptyIsMin will default to .
Converts a string value into a SmartDate.
String containing the date value.
Indicates whether an empty date is the min or max date value.
A new SmartDate containing the date value.
Converts a text date representation into a Date value.
An empty string is assumed to represent an empty date. An empty date
is returned as the MinValue of the Date datatype.
The text representation of the date.
A Date value.
Converts a text date representation into a Date value.
An empty string is assumed to represent an empty date. An empty date
is returned as the MinValue or MaxValue of the Date datatype depending
on the EmptyIsMin parameter.
The text representation of the date.
Indicates whether an empty date is the min or max date value.
A Date value.
Converts a text date representation into a Date value.
An empty string is assumed to represent an empty date. An empty date
is returned as the MinValue or MaxValue of the Date datatype depending
on the EmptyIsMin parameter.
The text representation of the date.
Indicates whether an empty date is the min or max date value.
A Date value.
Converts a date value into a text representation.
The date is considered empty if it matches the min value for
the Date datatype. If the date is empty, this
method returns an empty string. Otherwise it returns the date
value formatted based on the FormatString parameter.
The date value to convert.
The format string used to format the date into text.
Text representation of the date value.
Converts a date value into a text representation.
Whether the date value is considered empty is determined by
the EmptyIsMin parameter value. If the date is empty, this
method returns an empty string. Otherwise it returns the date
value formatted based on the FormatString parameter.
The date value to convert.
The format string used to format the date into text.
Indicates whether an empty date is the min or max date value.
Text representation of the date value.
Converts a date value into a text representation.
Whether the date value is considered empty is determined by
the EmptyIsMin parameter value. If the date is empty, this
method returns an empty string. Otherwise it returns the date
value formatted based on the FormatString parameter.
The date value to convert.
The format string used to format the date into text.
Indicates whether an empty date is the min or max date value.
Text representation of the date value.
Compares one SmartDate to another.
This method works the same as the DateTime.CompareTo method
on the Date datetype, with the exception that it
understands the concept of empty date values.
The date to which we are being compared.
A value indicating if the comparison date is less than, equal to or greater than this date.
Compares one SmartDate to another.
This method works the same as the DateTime.CompareTo method
on the Date datetype, with the exception that it
understands the concept of empty date values.
The date to which we are being compared.
A value indicating if the comparison date is less than, equal to or greater than this date.
Compares a SmartDate to a text date value.
The date to which we are being compared.
A value indicating if the comparison date is less than, equal to or greater than this date.
Compares a SmartDate to a date value.
The date to which we are being compared.
A value indicating if the comparison date is less than, equal to or greater than this date.
Adds a TimeSpan onto the object.
Span to add to the date.
Subtracts a TimeSpan from the object.
Span to subtract from the date.
Subtracts a DateTime from the object.
Date to subtract from the date.
Equality operator
First object
Second object
Inequality operator
First object
Second object
Equality operator
First object
Second object
Inequality operator
First object
Second object
Equality operator
First object
Second object
Inequality operator
First object
Second object
Addition operator
Original date/time
Span to add
Subtraction operator
Original date/time
Span to subtract
Subtraction operator
Original date/time
Second date/time
Greater than operator
First object
Second object
Less than operator
First object
Second object
Greater than operator
First object
Second object
Less than operator
First object
Second object
Greater than operator
First object
Second object
Less than operator
First object
Second object
Greater than or equals operator
First object
Second object
Less than or equals operator
First object
Second object
Greater than or equals operator
First object
Second object
Less than or equals operator
First object
Second object
Greater than or equals operator
First object
Second object
Less than or equals operator
First object
Second object
Provides a sorted view into an existing IList(Of T).
Type of child object contained by
the original list or collection.
Returns an enumerator for the list, honoring
any sort that is active at the time.
Implemented by IList source object.
Property on which
to build the index.
Implemented by IList source object.
Implemented by IList source object.
Implemented by IList source object.
Implemented by IList source object.
Applies a sort to the view.
The text name of the property on which to sort.
The direction to sort the data.
Applies a sort to the view.
A PropertyDescriptor for the property on which to sort.
The direction to sort the data.
Finds an item in the view
Name of the property to search
Value to find
Implemented by IList source object.
Key value for which to search.
Property to search for the key
value.
Gets a value indicating whether the view is currently sorted.
Raised to indicate that the list's data has changed.
This event is raised if the underling IList object's data changes
(assuming the underling IList also implements the IBindingList
interface). It is also raised if the sort property or direction
is changed to indicate that the view's data has changed. See
Chapter 5 for details.
Raises the event.
Event arguments.
Implemented by IList source object.
Property for which the
index should be removed.
Removes any sort currently applied to the view.
Returns the direction of the current sort.
Returns the PropertyDescriptor of the current sort.
Returns since this object does raise the
ListChanged event.
Implemented by IList source object.
Returns . Sorting is supported.
Implemented by IList source object.
Array to receive the data.
Starting array index.
Implemented by IList source object.
Implemented by IList source object.
Item to add to the list.
Implemented by IList source object.
Implemented by IList source object.
Item for which to search.
Implemented by IList source object.
Item for which to search.
Implemented by IList source object.
Index at
which to insert the item.
Item to insert.
Implemented by IList source object.
Implemented by IList source object.
Item to be removed.
Removes the child object at the specified index
in the list, resorting the display as needed.
The index of the object to remove.
See Chapter 5 for details on how and why the list is
altered during the remove process.
Gets the child item at the specified index in the list,
honoring the sort order of the items.
The index of the item in the sorted list.
Creates a new view based on the provided IList object.
The IList (collection) containing the data.
Contains utility methods used by the
CSLA .NET framework.
Determines whether the specified
value can be converted to a valid number.
Allows late bound invocation of
properties and methods.
Object implementing the property or method.
Name of the property or method.
Specifies how to invoke the property or method.
List of arguments to pass to the method.
The result of the property or method invocation.
Returns a property's type, dealing with
Nullable(Of T) if necessary.
Type of the
property as returned by reflection.
Returns the type of child object
contained in a collection or list.
Type of the list.
Valid options for calling a property or method
via the method.
Gets a value from a property.
Sets a value into a property.
Invokes a method.
Sets a value into a property.
Stores details about a specific broken business rule.
Provides access to the name of the broken rule.
The name of the rule.
Provides access to the description of the broken rule.
The description of the rule.
Provides access to the property affected by the broken rule.
The property affected by the rule.
Gets the severity of the broken rule.
A collection of currently broken rules.
This collection is readonly and can be safely made available
to code outside the business object such as the UI. This allows
external code, such as a UI, to display the list of broken rules
to the user.
Gets the number of broken rules in
the collection that have a severity
of Error.
An integer value.
Gets the number of broken rules in
the collection that have a severity
of Warning.
An integer value.
Gets the number of broken rules in
the collection that have a severity
of Information.
An integer value.
Returns the first object
corresponding to the specified property.
Code in a business object or UI can also use this value to retrieve
the first broken rule in that corresponds
to a specfic property on the object.
The name of the property affected by the rule.
The first BrokenRule object corresponding to the specified property, or null if
there are no rules defined for the property.
Returns the first object
corresponding to the specified property.
Code in a business object or UI can also use this value to retrieve
the first broken rule in that corresponds
to a specfic property.
The name of the property affected by the rule.
The first BrokenRule object corresponding to the specified property, or Nothing
(null in C#) if there are no rules defined for the property.
Returns the first object
corresponding to the specified property
and severity.
The name of the property affected by the rule.
The severity of broken rule to return.
The first BrokenRule object corresponding to the specified property, or Nothing
(null in C#) if there are no rules defined for the property.
Returns the text of all broken rule descriptions, each
separated by a .
The text of all broken rule descriptions.
Returns the text of all broken rule descriptions, each
separated by a .
The severity of rules to
include in the result.
The text of all broken rule descriptions
matching the specified severtiy.
Returns a string array containing all broken
rule descriptions.
The text of all broken rule descriptions
matching the specified severtiy.
Returns a string array containing all broken
rule descriptions.
The severity of rules
to include in the result.
The text of all broken rule descriptions
matching the specified severtiy.
Implements common business rules.
Rule ensuring a string value contains one or more
characters.
Object containing the data to validate
Arguments parameter specifying the name of the string
property to validate
if the rule is broken
This implementation uses late binding, and will only work
against string property values.
Rule ensuring a string value doesn't exceed
a specified length.
Object containing the data to validate
Arguments parameter specifying the name of the string
property to validate
if the rule is broken
This implementation uses late binding, and will only work
against string property values.
Custom object required by the
rule method.
Get the max length for the string.
Create a new object.
Name of the property to validate.
Max length of characters allowed.
Return a string representation of the object.
Rule ensuring an integer value doesn't exceed
a specified value.
Object containing the data to validate.
Arguments parameter specifying the name of the
property to validate.
if the rule is broken.
Custom object required by the
rule method.
Get the max value for the property.
Create a new object.
Name of the property.
Maximum allowed value for the property.
Return a string representation of the object.
Rule ensuring an integer value doesn't go below
a specified value.
Object containing the data to validate.
Arguments parameter specifying the name of the
property to validate.
if the rule is broken.
Custom object required by the
rule method.
Get the min value for the property.
Create a new object.
Name of the property.
Minimum allowed value for the property.
Return a string representation of the object.
Rule ensuring that a numeric value
doesn't exceed a specified maximum.
Type of the property to validate.
Object containing value to validate.
Arguments variable specifying the
name of the property to validate, along with the max
allowed value.
Custom object required by the
rule method.
Type of the property to validate.
Get the max value for the property.
Create a new object.
Name of the property.
Maximum allowed value for the property.
Returns a string representation of the object.
Rule ensuring that a numeric value
doesn't exceed a specified minimum.
Type of the property to validate.
Object containing value to validate.
Arguments variable specifying the
name of the property to validate, along with the min
allowed value.
Custom object required by the
rule method.
Type of the property to validate.
Get the min value for the property.
Create a new object.
Name of the property.
Minimum allowed value for the property.
Returns a string representation of the object.
Rule that checks to make sure a value
matches a given regex pattern.
Object containing the data to validate
RegExRuleArgs parameter specifying the name of the
property to validate and the regex pattern.
False if the rule is broken
This implementation uses late binding.
List of built-in regex patterns.
US Social Security number pattern.
Email address pattern.
Custom object required by the
rule method.
The object used to validate
the property.
Creates a new object.
Name of the property to validate.
Built-in regex pattern to use.
Creates a new object.
Name of the property to validate.
Custom regex pattern to use.
Creates a new object.
Name of the property to validate.
object to use.
f
Returns a string representation of the object.
Returns the specified built-in regex pattern.
Pattern to return.
Tracks all information for a rule.
Gets the priority of the rule method.
The priority value.
Priorities are processed in descending
order, so priority 0 is processed
before priority 1, etc.
Gets the name of the rule.
The rule's name must be unique and is used
to identify a broken rule in the BrokenRules
collection.
Returns the name of the field, property or column
to which the rule applies.
Invokes the rule to validate the data.
if the data is valid,
if the data is invalid.
Object providing extra information to methods that
implement business rules.
The name of the property to be validated.
Set by the rule handler method to describe the broken
rule.
A human-readable description of
the broken rule.
Setting this property only has an effect if
the rule method returns .
Gets or sets the severity of the broken rule.
The severity of the broken rule.
Setting this property only has an effect if
the rule method returns .
Gets or sets a value indicating whether this
broken rule should stop the processing of subsequent
rules for this property.
if no further
rules should be process for this property.
Setting this property only has an effect if
the rule method returns .
Creates an instance of RuleArgs.
The name of the property to be validated.
Return a string representation of the object.
Delegate that defines the method signature for all rule handler methods.
Object containing the data to be validated.
Parameter used to pass information to and from
the rule method.
if the rule was satisfied.
When implementing a rule handler, you must conform to the method signature
defined by this delegate. You should also apply the Description attribute
to your method to provide a meaningful description for your rule.
The method implementing the rule must return
if the data is valid and
return if the data is invalid.
Delegate that defines the method signature for all rule handler methods.
Type of the target object.
Type of the arguments parameter.
Object containing the data to be validated.
Parameter used to pass information to and from
the rule method.
if the rule was satisfied.
When implementing a rule handler, you must conform to the method signature
defined by this delegate. You should also apply the Description attribute
to your method to provide a meaningful description for your rule.
The method implementing the rule must return
if the data is valid and
return if the data is invalid.
Tracks all information for a rule.
Returns the name of the method implementing the rule
and the property, field or column name to which the
rule applies.
Gets the priority of the rule method.
The priority value
Priorities are processed in descending
order, so priority 0 is processed
before priority 1, etc.
Gets the name of the rule.
The rule's name must be unique and is used
to identify a broken rule in the BrokenRules
collection.
Returns the name of the field, property or column
to which the rule applies.
Creates and initializes the rule.
The address of the method implementing the rule.
A RuleArgs object.
Creates and initializes the rule.
The address of the method implementing the rule.
A RuleArgs object.
Priority for processing the rule (smaller numbers have higher priority, default=0).
Invokes the rule to validate the data.
if the data is valid,
if the data is invalid.
Tracks all information for a rule.
Type of the target object.
Type of the arguments parameter.
Returns the name of the method implementing the rule
and the property, field or column name to which the
rule applies.
Gets the priority of the rule method.
The priority value
Priorities are processed in descending
order, so priority 0 is processed
before priority 1, etc.
Gets the name of the rule.
The rule's name must be unique and is used
to identify a broken rule in the BrokenRules
collection.
Returns the name of the field, property or column
to which the rule applies.
Returns the name of the field, property or column
to which the rule applies.
Creates and initializes the rule.
The address of the method implementing the rule.
A RuleArgs object.
Creates and initializes the rule.
The address of the method implementing the rule.
A RuleArgs object.
Priority for processing the rule (smaller numbers have higher priority, default=0).
Invokes the rule to validate the data.
True if the data is valid, False if the data is invalid.
Invokes the rule to validate the data.
if the data is valid,
if the data is invalid.
Values for validation rule severities.
Represents a serious
business rule violation that
should cause an object to
be considered invalid.
Represents a business rule
violation that should be
displayed to the user, but which
should not make an object be
invalid.
Represents a business rule
result that should be displayed
to the user, but which is less
severe than a warning.
Maintains a list of all the per-type
objects
loaded in memory.
Gets the for the
specified object type, optionally creating a new instance
of the object if necessary.
Type of business object for which the rules apply.
Indicates whether to create
a new instance of the object if one doesn't exist.
Gets a value indicating whether a set of rules
have been created for a given .
Type of business object for which the rules apply.
if rules exist for the type.
Exception class indicating that there was a validation
problem with a business object.
Creates an instance of the object.
Creates an instance of the object.
Message describing the exception.
Creates an instance of the object.
Message describing the exception.
Inner exception object.
Creates an instance of the object for serialization.
Serialization context.
Serialization info.
Tracks the business rules broken within a business object.
Returns an array containing the text descriptions of all
validation rules associated with this object.
String array.
Gets or sets the priority through which
CheckRules should process before short-circuiting
processing on broken rules.
Defaults to 0.
All rules for each property are processed by CheckRules
though this priority. Rules with lower priorities are
only processed if no previous rule has been marked as
broken.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The propertyName may be used by the method that implements the rule
in order to retrieve the value to be validated. If the rule
implementation is inside the target object then it probably has
direct access to all data. However, if the rule implementation
is outside the target object then it will need to use reflection
or CallByName to dynamically invoke this property to retrieve
the value to be validated.
The method that implements the rule.
The property name on the target object where the rule implementation can retrieve
the value to be validated.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The propertyName may be used by the method that implements the rule
in order to retrieve the value to be validated. If the rule
implementation is inside the target object then it probably has
direct access to all data. However, if the rule implementation
is outside the target object then it will need to use reflection
or CallByName to dynamically invoke this property to retrieve
the value to be validated.
The method that implements the rule.
The property name on the target object where the rule implementation can retrieve
the value to be validated.
The priority of the rule, where lower numbers are processed first.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The propertyName may be used by the method that implements the rule
in order to retrieve the value to be validated. If the rule
implementation is inside the target object then it probably has
direct access to all data. However, if the rule implementation
is outside the target object then it will need to use reflection
or CallByName to dynamically invoke this property to retrieve
the value to be validated.
The method that implements the rule.
The property name on the target object where the rule implementation can retrieve
the value to be validated.
Type of the business object to be validated.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The propertyName may be used by the method that implements the rule
in order to retrieve the value to be validated. If the rule
implementation is inside the target object then it probably has
direct access to all data. However, if the rule implementation
is outside the target object then it will need to use reflection
or CallByName to dynamically invoke this property to retrieve
the value to be validated.
The method that implements the rule.
The property name on the target object where the rule implementation can retrieve
the value to be validated.
The priority of the rule, where lower numbers are processed first.
Type of the business object to be validated.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The method that implements the rule.
A RuleArgs object specifying the property name and other arguments
passed to the rule method
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The method that implements the rule.
A RuleArgs object specifying the property name and other arguments
passed to the rule method
The priority of the rule, where lower numbers are processed first.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
Type of the target object.
Type of the arguments parameter.
The method that implements the rule.
A RuleArgs object specifying the property name and other arguments
passed to the rule method
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
Type of the target object.
Type of the arguments parameter.
The method that implements the rule.
A RuleArgs object specifying the property name and other arguments
passed to the rule method
The priority of the rule, where lower numbers are processed first.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The propertyName may be used by the method that implements the rule
in order to retrieve the value to be validated. If the rule
implementation is inside the target object then it probably has
direct access to all data. However, if the rule implementation
is outside the target object then it will need to use reflection
or CallByName to dynamically invoke this property to retrieve
the value to be validated.
The method that implements the rule.
The property name on the target object where the rule implementation can retrieve
the value to be validated.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The propertyName may be used by the method that implements the rule
in order to retrieve the value to be validated. If the rule
implementation is inside the target object then it probably has
direct access to all data. However, if the rule implementation
is outside the target object then it will need to use reflection
or CallByName to dynamically invoke this property to retrieve
the value to be validated.
The method that implements the rule.
The property name on the target object where the rule implementation can retrieve
the value to be validated.
The priority of the rule, where lower numbers are processed first.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The propertyName may be used by the method that implements the rule
in order to retrieve the value to be validated. If the rule
implementation is inside the target object then it probably has
direct access to all data. However, if the rule implementation
is outside the target object then it will need to use reflection
or CallByName to dynamically invoke this property to retrieve
the value to be validated.
The method that implements the rule.
The property name on the target object where the rule implementation can retrieve
the value to be validated.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The propertyName may be used by the method that implements the rule
in order to retrieve the value to be validated. If the rule
implementation is inside the target object then it probably has
direct access to all data. However, if the rule implementation
is outside the target object then it will need to use reflection
or CallByName to dynamically invoke this property to retrieve
the value to be validated.
The method that implements the rule.
The property name on the target object where the rule implementation can retrieve
the value to be validated.
The priority of the rule, where lower numbers are processed first.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The method that implements the rule.
A RuleArgs object specifying the property name and other arguments
passed to the rule method
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
The method that implements the rule.
A RuleArgs object specifying the property name and other arguments
passed to the rule method
The priority of the rule, where lower numbers are processed first.
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
Type of the target object.
Type of the arguments parameter.
The method that implements the rule.
A RuleArgs object specifying the property name and other arguments
passed to the rule method
Adds a rule to the list of rules to be enforced.
A rule is implemented by a method which conforms to the
method signature defined by the RuleHandler delegate.
Type of the target object.
Type of the arguments parameter.
The method that implements the rule.
A RuleArgs object specifying the property name and other arguments
passed to the rule method
The priority of the rule, where lower numbers are processed first.
Adds a property to the list of dependencies for
the specified property
The name of the property.
The name of the depandent property.
When rules are checked for propertyName, they will
also be checked for any dependant properties associated
with that property.
Adds a property to the list of dependencies for
the specified property
The name of the property.
The name of the depandent property.
If then a
reverse dependancy is also established
from dependantPropertyName to propertyName.
When rules are checked for propertyName, they will
also be checked for any dependant properties associated
with that property. If isBidirectional is
then an additional association
is set up so when rules are checked for
dependantPropertyName the rules for propertyName
will also be checked.
Invokes all rule methods associated with
the specified property and any
dependant properties.
The name of the property to validate.
Invokes all rule methods for all properties
in the object.
Given a list
containing IRuleMethod objects, this
method executes all those rule methods.
Returns a value indicating whether there are any broken rules
at this time.
A value indicating whether any rules are broken.
Returns a reference to the readonly collection of broken
business rules.
The reference returned points to the actual collection object.
This means that as rules are marked broken or unbroken over time,
the underlying data will change. Because of this, the UI developer
can bind a display directly to this collection to get a dynamic
display of the broken rules at all times.
A reference to the collection of broken rules.
Maintains rule methods for a business object
or business object type.
Adds a property to the list of dependencies for
the specified property
The name of the property.
The name of the dependant property.
When rules are checked for propertyName, they will
also be checked for any dependant properties associated
with that property.
A Web Forms data binding control designed to support
CSLA .NET business objects as data sources.
Event raised when an object is to be created and
populated with data.
Handle this event in a page and set
e.BusinessObject to the populated business object.
Event raised when an object is to be populated with data
and inserted.
Handle this event in a page to create an
instance of the object, load the object with data and
insert the object into the database.
Event raised when an object is to be updated.
Handle this event in a page to update an
existing instance of an object with new data and then
save the object into the database.
Event raised when an object is to be deleted.
Handle this event in a page to delete
an object from the database.
Returns the default view for this data control.
Ignored.
This control only contains a "Default" view.
Get or set the name of the assembly (no longer used).
Obsolete - do not use.
Get or set the full type name of the business object
class to be used as a data source.
Full type name of the business class,
including assembly name.
Get or set a value indicating whether the
business object data source supports paging.
To support paging, the business object
(collection) must implement
.
Get or set a value indicating whether the
business object data source supports sorting.
Returns a Type object based on the
assembly and type information provided.
Optional assembly name.
Full type name of the class,
including assembly name.
Returns a list of views available for this control.
This control only provides the "Default" view.
Raises the SelectObject event.
Raises the InsertObject event.
Raises the UpdateObject event.
Raises the DeleteObject event.
The object responsible for managing data binding
to a specific CSLA .NET object.
Creates an instance of the object.
The CslaDataSource object
that owns this view.
The name of the view.
Get or set the name of the assembly (no longer used).
Obsolete - do not use.
Get or set the full type name of the business object
class to be used as a data source.
Full type name of the business class.
Get or set a value indicating whether the
business object data source supports paging.
To support paging, the business object
(collection) must implement
.
Get or set a value indicating whether the
business object data source supports sorting.
Implements the select behavior for
the control by raising the
event.
Arguments object.
The data returned from the select.
Gets a value indicating whether the data source can
insert data.
Implements the insert behavior for
the control by raising the
event.
The values from
the UI that are to be inserted.
The number of rows affected.
Gets a value indicating whether the data source can
delete data.
Implements the delete behavior for
the control by raising the
event.
The key values from
the UI that are to be deleted.
The old values
from the UI.
The number of rows affected.
Gets a value indicating whether the data source can
update data.
Implements the update behavior for
the control by raising the
event.
The key values from the UI
that identify the object to be updated.
The values from
the UI that are to be inserted.
The old values
from the UI.
The number of rows affected.
Gets a value indicating whether the data source supports
paging of the data.
Gets a value indicating whether the data source can
retrieve the total number of rows of data. Always
returns .
Gets a alue indicating whether the data source supports
sorting of the data. Always returns .
Argument object used in the DeleteObject event.
Gets or sets the number of rows affected
while handling this event.
The code handling the event should set this
value to indicate the number of rows affected
by the operation.
The list of key values entered by the user.
It is up to the event handler in the
web page to use the values to identify the
object to be deleted.
The list of old data values maintained by
data binding.
It is up to the event handler in the
web page to use the values to identify the
object to be deleted.
Create an instance of the object.
CslaDataSource configuration form.
Create instance of object.
Create instance of object.
Reference to the data source control.
Existing type name.
Gets the type name entered by the user.
Required designer variable.
Clean up any resources being used.
true if managed resources should be disposed; otherwise, false.
Required method for Designer support - do not modify
the contents of this method with the code editor.
Implements designer support for CslaDataSource.
Initialize the designer component.
The CslaDataSource control to
be designed.
Returns the default view for this designer.
Ignored
This designer supports only a "Default" view.
Return a list of available views.
This designer supports only a "Default" view.
Refreshes the schema for the data.
Get a value indicating whether the control can
refresh its schema.
Invoke the design time configuration
support provided by the control.
Get a value indicating whether this control
supports design time configuration.
Get a value indicating whether the control can
be resized.
Get a reference to the CslaDataSource control being
designed.
Object responsible for providing details about
data binding to a specific CSLA .NET object.
Creates an instance of the object.
Returns a set of sample data used to populate
controls at design time.
Minimum number of sample rows
to create.
Returns True if the data
is sample data.
Returns schema information corresponding to the properties
of the CSLA .NET business object.
All public properties are returned except for those marked
with the Browsable attribute
as False.
Get a value indicating whether data binding can retrieve
the total number of rows of data.
Get a value indicating whether data binding can directly
delete the object.
If this returns true, the web page must handle the
DeleteObject
event.
Get a value indicating whether data binding can directly
insert an instance of the object.
If this returns true, the web page must handle the
InsertObject
event.
Get a value indicating whether data binding can directly
update or edit the object.
If this returns true, the web page must handle the
UpdateObject
event.
Gets a value indicating whether the data source supports
paging.
Gets a value indicating whether the data source supports
sorting.
Contains schema information for a single
object property.
Creates an instance of the object.
The PropertyInfo object
describing the property.
Gets the data type of the property.
Gets a value indicating whether this property
is an identity key for the object.
Returns the optional value provided through
the DataObjectField
attribute on the property.
Gets a value indicating whether this property
is readonly.
Gets a value indicating whether this property
must contain a unique value.
Always returns True if the property
is marked as a primary key, otherwise
returns False.
Gets the length of the property value.
Returns the optional value provided through
the DataObjectField
attribute on the property.
Gets the property name.
Gets a value indicating whether the property
is nullable
Returns True for reference types, and for
value types wrapped in the Nullable generic.
The result can also be set to True through
the DataObjectField
attribute on the property.
Gets the property's numeric precision.
Always returns -1.
Gets a value indicating whether the property
is a primary key value.
Returns the optional value provided through
the DataObjectField
attribute on the property.
Gets the property's scale.
Always returns -1.
Object providing access to schema information for
a business object.
This object returns only one view, which corresponds
to the business object used by data binding.
Creates an instance of the object.
Data source designer object.
Type name for
which the schema should be generated.
Returns a single element array containing the
schema for the CSLA .NET business object.
Object providing schema information for a
business object.
Create an instance of the object.
Site containing the control.
The business class for
which to generate the schema.
Returns a list of child schemas belonging to the
object.
This schema object only returns
schema for the object itself, so GetChildren will
always return Nothing (null in C#).
Returns schema information for each property on
the object.
All public properties on the object
will be reflected in this schema list except
for those properties where the
Browsable attribute
is False.
Returns the name of the schema.
Argument object used in the InsertObject event.
Gets or sets the number of rows affected
while handling this event.
The code handling the event should set this
value to indicate the number of rows affected
by the operation.
The list of data values entered by the user.
It is up to the event handler in the
web page to take the list of values, put them
into a business object and to save that object
into the database.
Create an instance of the object.
Argument object used in the SelectObject event.
Get or set a reference to the business object
that is created and populated by the SelectObject
event handler in the web page.
A reference to a CSLA .NET business object.
Gets the sort expression that should be used to
sort the data being returned to the data source
control.
Gets the property name for the sort if only one
property/column name is specified.
If multiple properties/columns are specified
for the sort, you must parse the value from
to find all the
property names and sort directions for the sort.
Gets the sort direction for the sort if only
one property/column name is specified.
If multiple properties/columns are specified
for the sort, you must parse the value from
to find all the
property names and sort directions for the sort.
Gets the index for the first row that will be
displayed. This should be the first row in
the resulting collection set into the
property.
Gets the maximum number of rows that
should be returned as a result of this
query. For paged collections, this is the
page size.
Gets a value indicating whether the
query should return the total row count
through the
interface.
Creates an instance of the object, initializing
it with values from data binding.
Values provided from data binding.
Argument object used in the UpdateObject event.
Gets or sets the number of rows affected
while handling this event.
The code handling the event should set this
value to indicate the number of rows affected
by the operation.
The list of key values entered by the user.
It is up to the event handler in the
web page to take the list of values, put them
into a business object and to save that object
into the database.
The list of data values entered by the user.
It is up to the event handler in the
web page to take the list of values, put them
into a business object and to save that object
into the database.
The list of old data values maintained by
data binding.
It is up to the event handler in the
web page to take the list of values, put them
into a business object and to save that object
into the database.
Creates an instance of the object.
Windows Forms extender control that resolves the
data refresh issue with data bound detail controls
as discussed in Chapter 5.
Creates an instance of the object.
Container of the control.
Gets a value indicating whether the extender control
can extend the specified control.
The control to be extended.
This control only extends controls.
Gets the value of the custom ReadValuesOnChange extender
property added to extended controls.
Control being extended.
Sets the value of the custom ReadValuesOnChange extender
property added to extended controls.
Control being extended.
New value of property.
Windows Forms extender control that automatically
enables and disables detail form controls based
on the authorization settings from a CSLA .NET
business object.
Creates an instance of the object.
The container of the control.
Gets a value indicating whether the extender control
can extend the specified control.
The control to be extended.
Any control implementing either a ReadOnly property or
Enabled property can be extended.
Gets the custom ApplyAuthorization extender
property added to extended controls.
Control being extended.
Sets the custom ApplyAuthorization extender
property added to extended controls.
Control being extended.
New value of property.
Causes the ReadWriteAuthorization control
to apply authorization rules from the business
object to all extended controls on the form.
Call this method to refresh the display of detail
controls on the form any time the authorization
rules may have changed. Examples include: after
a user logs in or out, and after an object has
been updated, inserted, deleted or retrieved
from the database.