From 5ddc3980edc381d8b0621a09600a20921f8a94fc Mon Sep 17 00:00:00 2001 From: John Jenko Date: Thu, 6 Feb 2025 15:41:28 -0500 Subject: [PATCH] net 4.8.1 build of CSLA.dll --- CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.XML | 8162 +++++++++++++++++ CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.dll | Bin 0 -> 154112 bytes .../Csla.dll.config | 15 + CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.pdb | Bin 0 -> 562688 bytes 4 files changed, 8177 insertions(+) create mode 100644 CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.XML create mode 100644 CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.dll.config create mode 100644 CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.pdb diff --git a/CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.XML b/CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.XML new file mode 100644 index 0000000..e3a8e9f --- /dev/null +++ b/CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.XML @@ -0,0 +1,8162 @@ + + + + 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. + + + + diff --git a/CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.dll b/CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.dll index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..96b15839ad0b55e7d545bbd32794083f3b636e2f 100644 GIT binary patch literal 154112 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 LS6P4gIPiY}G=d*e literal 0 HcmV?d00001 diff --git a/CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.dll.config b/CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.dll.config new file mode 100644 index 0000000..4de5bad --- /dev/null +++ b/CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.dll.config @@ -0,0 +1,15 @@ + + + + +
+ + + + + + http://localhost:4804/WSPortalcs/Service.asmx + + + + diff --git a/CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.pdb b/CSLA/CSLA20cs_DLL_Net_4.8.1_Build/Csla.pdb new file mode 100644 index 0000000000000000000000000000000000000000..d883b2f4b610ee58a58c1127b25afde797268eff GIT binary patch literal 562688 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%0A1vOR?>f$&M+s(poOtiq>5wc;A2_#h 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%0D>zP4-^-{VrX(?mG?jxZCkq4XVL-N6e%6 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