C# (CSharp) Habanero.BO Namespace

Nested Namespaces

Habanero.BO.ClassDefinition
Habanero.BO.CriteriaManager
Habanero.BO.Exceptions
Habanero.BO.Loaders
Habanero.BO.Rules

Classes

Name Description
BOProp Stores the values (current Value, DatabaseValue etc) and state (dirty, valid) of a property of a IBusinessObject. Has a reference to the Property Definition PropDef that was used to create it. The Property definition includes property rules and validation functionality. The property of a business object may represent a property such as FirstName, Surname. Typically a IBusinessObject will have a collection of Properties.
BOPropertyMapper This is a mapper class that handles the mapping of a property name to a specific property for a specified IBusinessObject. The property name can be specified as a path through single relationships on the IBusinessObject and its' relationship tree. For Example:
For the ContactPerson BusinessObject when the propertyName is "FirstName", the returned IBOProp will be the "FirstName" property on ContactPerson.
If the propertyName was "Organisation.Name" then the Organisation relationship on the contact person will be traversed and monitored and return the corresponding "Name" IBOProp for the ContactPerson's current Organisation.
BusinessObjectLookupList Provides a lookup-list sourced from business object collections. A lookup-list is typically used to populate features like a ComboBox, where the string would be displayed, but the Guid would be the value stored (for reasons of data integrity). The string-Guid pair collection will be created using each object's ToString() function and the object's Guid ID.
NB: this class does not provide criteria, so the entire collection will be loaded.
BusinessObjectXmlReader Converts the content of an XmlReader into a set of IBusinessObject. This is the default implementation, and converts xml written by the BusinessObjectXmlWriter into business objects. It's easiest to use this class via ObjectTreeXmlReader or DataStoreInMemoryXmlReader. However, if you need to change how objects are read/written from xml, implement your own IBusinessObjectXmlReader and IBusinessObjectXmlWriter and use them with those classes.
DataAccessorThreadSplitter This Data accessor manages separate sub-data accessors per thread. This is needed because in some cases the ADO.NET provider is not thread-safe (eg SQL CE) so maintaining a separate database connection per thread is required. To use it make sure that each thread in your system has added its own dataaccessor using AddDataAccessorForThread
DataSetProvider Provides a super-class for data-set providers for business objects
DataStoreInMemoryBinaryReader Reads business objects from a binary file that has been saved with a DataStoreInMemoryBinaryWriter
DataStoreInMemoryBinaryWriter A class that writes the contents of a DataStoreInMemory to a binary stream.
DataStoreInMemoryXmlReader This class reads an xml stream and loads the objects in it into a DataStoreInMemory The class assumes you are loading afresh. Before doing the load, we recommend that you clear your BusinessObjectManager too so that you only have one instance of each object.
DataStoreInMemoryXmlWriter Writes the contents of a DataStoreInMemory to an xml stream
NullBOPropertyMapper This is a mapper class that handles a null mapping of a property for a specified IBusinessObject.
NullTransactionLogger A transaction logger that does nothing (ie it doesn't log anything)
ObjectTreeXmlReader This class reads an xml stream and loads the objects in it into an IEnumerable[IBusinessObject]. It will update existing objects. For example, if you are deserialising an object from an xml stream that exists in your data store, it will load the object from the data store and update its properties from the xml stream. It won't persist after this. If the object does not exist in the data store then it will instantiate the object and set up its properties as a new object, ready to persist.
PropRuleBase Provides a super-class for property rules that test the validity of a property value. If you would like to implement your own property rule checker, inherit from this class, override the IsPropValueValid method and add a constructor with the same arguments as this one and pass back these arguments to base(). In the class definitions, in the 'rule' element under the relevant 'property', specify the class and assembly of your newly implemented class.
QueryBuilder Provides utility methods that create SelectQuery objects given a set of information.
QueryResultLoaderInMemory Loads an IQueryResult given a ISelectQuery from an in memory data store (DataStoreInMemory)
ReflectionPropertyMapper This is a mapper class that handles the mapping of a property name to a specific property for a specified IBusinessObject. The property name can be specified as a path through single relationships on the IBusinessObject and its' relationship tree. For Example:
For the ContactPerson BusinessObject when the propertyName is "FirstName", the returned IBOProp will be the "FirstName" property on ContactPerson.
If the propertyName was "Organisation.Name" then the Organisation relationship on the contact person will be traversed and monitored and return the corresponding "Name" IBOProp for the ContactPerson's current Organisation.
TransactionCommitterMultiSource An implementation of ITransactionCommitter used as an aggregate transaction committer. It stores a dictionary of IDataAccessor - one for each type, as well as a default. If the business object added is linked to a particular DataAccessor it will be added to that one, otherwise it will be added to the default. Note that only one underlying DataAccessor will be allowed to be used. If you add business objects whose types are linked to different DataAccessors you will get an error. This can be used when you have some objects that are persisted to one database and others to another. See DataAccessorMultiSource
TransactionLogBusObj Provides a BusinessObject to use the TransactionLog table.
TransactionLoggerFactoryNull A Transaction logger factory that creates NullTransactionLogger objects which don't log anything.
TransactionalBusinessObject