This update merges a number of projects into CUL along with adding a large amount of new functionality, bug fixes, etc. into the code base.
1) CodeGen namespace, which helps with templated text/code generation.
2) Added ability to set free/busy status of appointments.
3) Added IsOfType function to tell if a specific type is a subtype of an interface/base class.
4) Added GetPropertyName function that does a better job when the data type of the property is known.
5) Added basic functions to DataTypeConversion class to convert between SqlDbType to .Net types and vice versa.
6) Added IFluentInterface interface that can be used to hide the ToString, etc. functions.
7) Added MicroORM set of classes, which acts as a simple object to relational mapper (similar to Dapper).
8) Added the ability to run multiple queries in one go in SQLHelper with the NextResult function (skips to the next result set).
9) Added ExecuteDataSet and ExecuteXmlReader functions for SQLHelper (to bring it more in line with the old SqlHelper class that Microsoft put out a while back).
10) Added DbTypeToNetType and NetTypeToDbType functions that convert from DbType to .Net types and vice versa. (also added DbTypeToSqlDbType and SqlDbTypeToDbType to convert between SqlDbType and DbType)
11) Simplified and merged ObjectCartographer project code. Now is housed in the Utilities.DataMapper namespace.
12) Added GetPropertySetter and GetPropertyGetter functions to generate Func and Actions on the fly for a property.
13) Added GetProperty function when type not known at compile time.
14) Added ; as separator in EmailSender class.
15) Added JSON serialization.
16) Merged YABOV project code. Now is housed in the Utilities.Validation namespace.
17) Merged Blammo.Net project code. Now is housed in the Utilities.IO.Logging namespace.
18) Merged Gestalt.Net project code. Now is housed in the Utilities.Configuration namespace.
19) Added function to FileManager that allows for setting attributes on a directory/files within it.
20) Added function to Reflection class that creates one instance of all classes that it finds of a specific interface/base class.
21) Added functions to load assemblies from a directory and create objects from a directory.
22) Added ability to search for file types in FileManager.
23) Merged Aspectus project code. Now housed in the Utilities.Reflection.AOP namespace.
24) Merged DotCache project code. Now housed in the Utilities.Caching namespace.
25) Merged Hateraide project code. Now housed in the Utilities.ORM namespace.
26) Added generic version of ExecuteScaler function in SQLHelper.
1) Fixed minor issues with CSS StripWhitespace function.
3) Fixed issue with delimited files containing $.
4) Fixed issue in EmailSender if email addresses are empty/blank.
5) Improved the IsIEnumerable function to remove redundant code.
6) Rewrote SQLHelper class. Now uses DbFactories so more than just SQL Server is supported.
7) Added better parameter handling to SQLHelper.
8) Improved GetPropertyName function.
9) Added automatic opening/closing of a connection on functions where it is required (SQLHelper)
10) Added checks to SQLHelper for opening/closing a connection.
11) Added check in SQLHelper that if a field wasn't returned that the default value is instead returned.
12) Fixed various issues in SQLServer class.
Note that documentation and the simple example web app comes with UtilitiesFull and UtilitiesIndividualDLLs. Also note that the image found in the ExampleWebApp is the Lenna image, the spam corpus is from Bruce Guenter's spam repository, and the real email corpus is from the Enron email dataset.