<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Westwind.Utilities</name>
    </assembly>
    <members>
        <member name="T:Westwind.Utilities.Configuration.AppConfiguration">
            <summary>
            This class provides a base class for code-first, strongly typed configuration 
            settings in .NET. It supports storing of configuration data in
            .NET .config files, plain XML files, strings and SQL Server databases and
            custom providers.
            
            Using this class is easy: Create a subclass of AppConfiguration and 
            then simply add properties to the class. Then instantiate the class, 
            call Initialize(), then simply access the class 
            properties to read configuration values.
            
            The default implementation uses standard .NET configuration files and a 
            custom section within that file to hold configuration values. Other 
            providers can be used to store data to different stores and you can create 
            your own custom providers to store configuration data in yet other stores.
            <seealso>Managing Configuration Settings with AppConfiguration</seealso>
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Configuration.AppConfiguration.Provider">
            <summary>
            An instance of a IConfigurationProvider that
            needs to be passed in via constructor or set
            explicitly to read and write from the configuration
            store.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Configuration.AppConfiguration.ErrorMessage">
            <summary>
            Contains an error message if a method returns false or the object fails to 
            load the configuration data.
            <seealso>Class AppConfiguration</seealso>
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Configuration.AppConfiguration.InitializeCalled">
            <summary>
            Internal flag that checks to see if Initialize was called
            if not - automatically calls it without parameters
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.#ctor">
            <summary>
            Default constructor of this class SHOULD ALWAYS be implemented in
            every subclass to allow serialization instantiation and setting
            of initial property values.
            </summary>         
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.Initialize(Westwind.Utilities.Configuration.IConfigurationProvider,System.String,System.Object)">
            <summary>
            This method initializes the configuration object with a provider
            and performs an initial read from the config store.    
            </summary>
            <param name="provider">
            Optional - preconfigured ConfigurationProvider instance.
            If not passed ConfigurationFileConfigurationProvider is used.
            </param>
            <param name="sectionName">
            Optional - sub-section name used for config files. Not used by all config stores
            </param>
            <param name="configData">
            Optional - additional config data to pass to OnInitialize if implemented
            </param>
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.OnInitialize(Westwind.Utilities.Configuration.IConfigurationProvider,System.String,System.Object)">
            <summary>
            Override this method to handle custom initialization tasks.
            
            This method should: create a provider and call it's Read()
            method to populate the current instance of the configuration
            object.
            
            If all you need is to create a default provider configuration
            use the OnCreateDefaultProvider() method to override instead.
            Use this method if you need to perform custom actions beyond
            provider instantiation.
            </summary>
            <param name="provider">Provider value - can be null in which case ConfigurationFileProvider is used</param>
            <param name="sectionName">Sub Section name - can be null. Classname is used if null. Can be "appSettings" </param>
            <param name="configData">
            Any additional configuration data that can be used to
            configure the provider.
            </param>
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.OnCreateDefaultProvider(System.String,System.Object)">
            <summary>
            Override this method to use a specialized configuration provider for your config class
            when no explicit provider is passed to the Initialize() method.
            </summary>
            <param name="sectionName">Optional section name that was passed to Initialize()</param>
            <param name="configData">Optional config data that was passed to Initialize()</param>
            <returns>Instance of configuration provider</returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.Write">
            <summary>
            Writes the current configuration information data to the
            provider's configuration store.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.WriteAsString">
            <summary>
            Writes the current configuration information to an
            XML string. String is in .NET XML Serialization format.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.Read``1">
            <summary>
            Reads the configuration information from the 
            provider's store and returns a new instance
            of an configuration object.
            </summary>
            <typeparam name="T">This configuration class type</typeparam>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.Read">
            <summary>
            Reads the configuration from the provider's store
            into the current object instance.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.Read(System.String)">
            <summary>
            Reads configuration data from a string and populates the current
            instance with the values.
            
            Data should be serialized in XML Searlization format created
            with <seealso cref="M:Westwind.Utilities.Configuration.AppConfiguration.WriteAsString" />
            </summary>
            <param name="xml">Xml string in XML Serialization format</param>
            <returns>true or false</returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.Read``1(Westwind.Utilities.Configuration.IConfigurationProvider)">
            <summary>
            Reads configuration based on a provider configuration
            and returns a new instance of the configuration object
            </summary>
            <typeparam name="T"></typeparam>
            <param name="provider">A configured  <seealso cref="T:Westwind.Utilities.Configuration.IConfigurationProvider"/>" provider</param>
            <returns>instance of configuration or null on failure</returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.Read``1(System.String,Westwind.Utilities.Configuration.IConfigurationProvider)">
            <summary>
            Creates a new instance of the config object and retrieves
            configuration information from the provided string. String 
            should be in XML Serialization format or created by the 
            <seealso cref="M:Westwind.Utilities.Configuration.AppConfiguration.WriteAsString"/> method.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="xml"></param>
            <param name="provider">Required if encryption decryption is desired</param>
            <returns>config instance or null on failure</returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.AppConfiguration.Read``1(System.String)">
            <summary>
            Creates a new instance of the config object and retrieves
            configuration information from the provided string. String 
            should be in XML Serialization format or created by the 
            <seealso cref="M:Westwind.Utilities.Configuration.AppConfiguration.WriteAsString"/> method.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="xml"></param>
            <returns>config instance or null on failure</returns>
        </member>
        <member name="T:Westwind.Utilities.Configuration.MyAppConfiguration">
            <summary>
            Sample class for diagram display
            </summary>
        </member>
        <member name="T:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1">
            <summary>
            Reads and Writes configuration settings in .NET config files and 
            sections. Allows reading and writing to default or external files 
            and specification of the configuration section that settings are
            applied to.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1.ConfigurationFile">
            <summary>
            Optional - the Configuration file where configuration settings are
            stored in. If not specified uses the default Configuration Manager
            and its default store.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1.syncWriteLock">
            <summary>
            internal property used to ensure there are no multiple write
            operations at the same time
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1.XmlNamespaces">
            <summary>
            Internally used reference to the Namespace Manager object
            used to make sure we're searching the proper Namespace
            for the appSettings section when reading and writing manually
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1.Read``1">
            <summary>
            Reads configuration settings into a new instance of the configuration object.
            </summary>
            <typeparam name="TAppConfig"></typeparam>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1.Read(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Reads configuration settings from the current configuration manager. 
            Uses the internal APIs to write these values.
            </summary>        
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1.Read(Westwind.Utilities.Configuration.AppConfiguration,System.String)">
            <summary>
            Reads Configuration settings from an external file or explicitly from a file.
            Uses XML DOM to read values instead of using the native APIs.
            </summary>        
            <param name="config">Configuration instance</param>
            <param name="filename">Filename to read from</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1.GetNamedValueFromXml(System.Xml.XmlDocument,System.String,System.String)">
            <summary>
            Returns a single value from the XML in a configuration file.
            </summary>
            <param name="Dom"></param>
            <param name="Key"></param>
            <param name="ConfigSection"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1.GetXmlNamespaceInfo(System.Xml.XmlDocument)">
            <summary>
            Used to load up the default namespace reference and prefix
            information. This is required so that SelectSingleNode can
            find info in 2.0 or later config files that include a namespace
            on the root element definition.
            </summary>
            <param name="Dom"></param>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1.CreateConfigSection(System.Xml.XmlDocument,System.String)">
            <summary>
            Creates a Configuration section and also creates a ConfigSections section for new 
            non appSettings sections.
            </summary>
            <param name="dom"></param>
            <param name="configSection"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1.TypedValueToString(System.Object,System.Globalization.CultureInfo,System.String)">
            <summary>
            Converts a type to string if possible. This method supports an optional culture generically on any value.
            It calls the ToString() method on common types and uses a type converter on all other objects
            if available
            </summary>
            <param name="rawValue">The Value or Object to convert to a string</param>
            <param name="culture">Culture for numeric and DateTime values</param>
            <param name="unsupportedReturn">Return string for unsupported types</param>
            <returns>string</returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationFileConfigurationProvider`1.StringToTypedValue(System.String,System.Type,System.Globalization.CultureInfo)">
            <summary>
            Turns a string into a typed value generically.
            Explicitly assigns common types and falls back
            on using type converters for unhandled types.         
            
            Common uses: 
            * UI -&gt; to data conversions
            * Parsers
            <seealso>Class ReflectionUtils</seealso>
            </summary>
            <param name="sourceString">
            The string to convert from
            </param>
            <param name="targetType">
            The type to convert to
            </param>
            <param name="culture">
            Culture used for numeric and datetime values.
            </param>
            <returns>object. Throws exception if it cannot be converted.</returns>
        </member>
        <member name="T:Westwind.Utilities.Configuration.ConfigurationProviderBase`1">
            <summary>
            Base Configuration Provider Implementation. This implementation provides
            for the basic layout of a provider and fields that implement the
            IConfigurationProvider interface.
            
            The Read and Write methods must be overridden - all other methods and 
            fields are optional
            
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.ErrorMessage">
            <summary>
            Displays error information when results fail.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.PropertiesToEncrypt">
            <summary>
            A comma delimiter list of property names that are 
            to be encrypted when persisted to the store
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.EncryptionKey">
            <summary>
            The encryption key to encrypt the fields 
            set with FieldsToEncrypt
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.ConfigurationSection">
            <summary>
            Optional Section name that can differentiate groups of config
            values in multi-section files like Config files.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.Read``1">
            <summary>
            Reads a configurations settings from the configuration store
            into a new existing instance.
            </summary>
            <typeparam name="T">Specific Config Settings Class</typeparam>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.Read(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Reads configuration settings from the store into a passed
            instance of the configuration instance.
            </summary>
            <param name="config">Specific config settings class instance</param>
            <returns>true or false</returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.Write(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Writes the configuration settings from a specific instance
            into the configuration store.
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.Read``1(System.String)">
            <summary>
            Creates a new instance of the application object and retrieves
            configuration information from the provided string. String 
            should be in XML Serialization format or created by the WriteAsString 
            method.
            </summary>
            <typeparam name="T">Type of the specific configuration class</typeparam>
            <param name="xml">An xml string that contains XML Serialized serialization data</param>
            <returns>The deserialized instance or null on failure</returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.Read(Westwind.Utilities.Configuration.AppConfiguration,System.String)">
            <summary>
            Reads data into configuration from an XML string into a passed 
            instance of the a configuration object.
            </summary>
            <param name="config">An instance of a custom configuration object</param>
            <param name="xml">Xml of serialized configuration instance.</param>
            <returns>true or false</returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.WriteAsString(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Writes the current configuration information to an
            XML string. String is XML Serialization format.
            </summary>
            <returns>xml string of serialized config object</returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.EncryptFields(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Encrypts all the fields in the current object based on the EncryptFieldList
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.DecryptFields(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Internally decryptes all the fields in the current object based on the EncryptFieldList
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.SetError(System.String)">
            <summary>
            Sets an error message when an error occurs
            </summary>
            <param name="message"></param>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.SetError(System.Exception)">
            <summary>
            Writes an exception and innerexception message
            into the error message text
            </summary>
            <param name="ex"></param>
        </member>
        <member name="M:Westwind.Utilities.Configuration.ConfigurationProviderBase`1.CreateConfigurationInstance">
            <summary>
            Helper method to create a new instance of the Configuration object.        
            </summary>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Configuration.IConfigurationProvider">
            <summary>
            Configuration Provider interface that provides read and write services
            to various configuration storage mechanisms.
            
            Used in conjunction with the <seealso cref="T:Westwind.Utilities.Configuration.AppConfiguration"/> class. 
            A base implementation from which to inherit is provided in the
            <seealso cref="T:Westwind.Utilities.Configuration.ConfigurationProviderBase`1"/>  class.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.IConfigurationProvider.ErrorMessage">
            <summary>
            Holds an error message after a read or write operation
            failed.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.IConfigurationProvider.PropertiesToEncrypt">
            <summary>
            A comma delimited list of fields that are to be encrypted
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.IConfigurationProvider.EncryptionKey">
            <summary>
            The encryption key used to encrypt fields in config objects
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.IConfigurationProvider.ConfigurationSection">
            <summary>
            Optional Section name that can be used to sub-segment in multi-config files
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Configuration.IConfigurationProvider.Read``1">
            <summary>
            Reads configuration information into new configuration object instance
            </summary>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.IConfigurationProvider.Read(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Reads configuration information into a provided config object instance
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.IConfigurationProvider.Read(Westwind.Utilities.Configuration.AppConfiguration,System.String)">
            <summary>
            Reads configuration information from an XML string (Xml Serialization format)
            into a provided config object instance
            </summary>
            <param name="config"></param>
            <param name="xml"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.IConfigurationProvider.Write(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Writes configuration information into a provided object instance
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.IConfigurationProvider.WriteAsString(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Writes configuration for a provided config object and returns
            the serialized data as a string.
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.IConfigurationProvider.EncryptFields(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Encrypts fields in a config object as specified in the cref="PropertiesToEncrypt" property.
            </summary>
            <param name="config"></param>
        </member>
        <member name="M:Westwind.Utilities.Configuration.IConfigurationProvider.DecryptFields(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Decryptes the encyrpted fields in a config object a
            </summary>
            <param name="config"></param>
        </member>
        <member name="T:Westwind.Utilities.Configuration.JsonFileConfigurationProvider`1">
            <summary>
            Reads and Writes configuration settings in .NET config files and 
            sections. Allows reading and writing to default or external files 
            and specification of the configuration section that settings are
            applied to.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.JsonFileConfigurationProvider`1.JsonConfigurationFile">
            <summary>
            Optional - the Configuration file where configuration settings are
            stored in. If not specified uses the default Configuration Manager
            and its default store.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Configuration.JsonFileConfigurationProvider`1.Read``1">
            <summary>
            Return 
            </summary>
            <typeparam name="TAppConfig"></typeparam>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.JsonFileConfigurationProvider`1.Write(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Write configuration to XmlConfigurationFile location
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Configuration.SqlServerConfigurationProvider`1">
            <summary>
            Reads and Writes configuration settings in .NET config files and 
            sections. Allows reading and writing to default or external files 
            and specification of the configuration section that settings are
            applied to.
            
            This implementation doesn't support Read and Write operation that
            don't return a string value. Only Read(string) and WriteAsString()
            should be used to read and write string values.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.SqlServerConfigurationProvider`1.ConnectionString">
            <summary>
            The raw SQL connection string or connectionstrings name
            for the database connection.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.SqlServerConfigurationProvider`1.ProviderName">
            <summary>
            The data provider used to access the database
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.SqlServerConfigurationProvider`1.Tablename">
            <summary>
            Table in the database that holds configuration data
            Table must have ID(int) and ConfigData (nText) fields
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.SqlServerConfigurationProvider`1.Key">
            <summary>
            The key of the record into which the config
            data is written. Defaults to 1.
            
            If you need to read or write multiple different
            configuration records you have to change it on
            this provider before calling the Read()/Write()
            methods.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Configuration.SqlServerConfigurationProvider`1.Read``1">
            <summary>
            Reads configuration data into a new instance from SQL Server
            that is returned.
            </summary>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.SqlServerConfigurationProvider`1.Read(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Reads configuration data from Sql Server into an existing 
            instance updating its fields.
            </summary> 
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Configuration.StringConfigurationProvider`1">
            <summary>
            Reads and Writes configuration settings from strings - which you manage
            yourself. Using strings for the configuration provider allows for easy
            storage into any non-supported configuration stores that you control
            through your code as long as it supports strings.   
            
            The string provider is a real minimal implementation that only implements
            WriteAsString(config) and Read(string). It inherits all of its functionality
            from the base provider.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Configuration.StringConfigurationProvider`1.Read``1">
            <summary>
            Reads from the InitialStringData string data
            </summary>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.StringConfigurationProvider`1.Read(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Reads configuration information into config from InitialStringData
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.StringConfigurationProvider`1.Write(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Not supported for StringConfiguration
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Configuration.XmlFileConfigurationProvider`1">
            <summary>
            Reads and Writes configuration settings in .NET config files and 
            sections. Allows reading and writing to default or external files 
            and specification of the configuration section that settings are
            applied to.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Configuration.XmlFileConfigurationProvider`1.XmlConfigurationFile">
            <summary>
            Optional - the Configuration file where configuration settings are
            stored in. If not specified uses the default Configuration Manager
            and its default store.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Configuration.XmlFileConfigurationProvider`1.Read``1">
            <summary>
            Return 
            </summary>
            <typeparam name="TAppConfig"></typeparam>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Configuration.XmlFileConfigurationProvider`1.Write(Westwind.Utilities.Configuration.AppConfiguration)">
            <summary>
            Write configuration to XmlConfigurationFile location
            </summary>
            <param name="config"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Data.ConnectionStringInfo">
            <summary>
            Used to parse a connection string or connection string name 
            into a the base connection  string and dbProvider.
            
            If a connection string is passed that's just used.
            If a ConnectionString entry name is passed the connection 
            string is extracted and the provider parsed.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Data.ConnectionStringInfo.DefaultProviderName">
            <summary>
            The default connection string provider
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.ConnectionStringInfo.ConnectionString">
            <summary>
            The connection string parsed
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.ConnectionStringInfo.Provider">
            <summary>
            The DbProviderFactory parsed from the connection string
            or default provider
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Data.ConnectionStringInfo.GetConnectionStringInfo(System.String,System.String,System.Data.Common.DbProviderFactory)">
            <summary>
            Figures out the Provider and ConnectionString from either a connection string
            name in a config file or full  ConnectionString and provider.         
            </summary>
            <param name="connectionString">Config file connection name or full connection string</param>
            <param name="providerName">optional provider name. If not passed with a connection string is considered Sql Server</param>
            <param name="factory">optional provider factory. Use for .NET Core to pass actual provider instance since DbproviderFactories doesn't exist</param> 
        </member>
        <member name="M:Westwind.Utilities.Data.ConnectionStringInfo.RetrieveConnectionStringFromConfig(System.String,Westwind.Utilities.Data.ConnectionStringInfo)">
            <summary>
            Retrieves a connection string from the Connection Strings configuration settings
            </summary>
            <param name="connectionStringName"></param>
            <param name="info"></param>
            <exception cref="T:System.InvalidOperationException">Throws when connection string doesn't exist</exception>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Data.DataAccessBase">
            <summary>
            Base Data Access Layer (DAL) for ADO.NET SQL operations.
            Provides easy, single method operations to retrieve DataReader,
            DataTable, DataSet and Entities, perform non-query operations,
            call stored procedures.
            
            This abstract class implements most data operations using a
            configured DbProvider. Subclasses implement specific database
            providers and override a few methods that might have provider
            specific SQL Syntax.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.#ctor">
            <summary>
            Default constructor that should be called back to 
            by subclasses. Parameterless assumes default provider
            and no connection string which must be explicitly set.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.#ctor(System.String)">
            <summary>
            Most common constructor that expects a connection string or 
            connection string name from a .config file. If a connection
            string is provided the default provider is used.
            </summary>
            <param name="connectionString"></param>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.#ctor(System.String,System.String)">
            <summary>
            Constructor that expects a full connection string and provider
            for creating a SQL instance. To be called by the same implementation
            on a subclass.
            </summary>
            <param name="connectionString"></param>
            <param name="providerName"></param>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.#ctor(System.String,System.Data.Common.DbProviderFactory)">
            <summary>
            Constructor that expects a full connection string and provider
            for creating a SQL instance. To be called by the same implementation
            on a subclass.
            </summary>
            <param name="connectionString"></param>
            <param name="providerName"></param>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.GetConnectionInfo(System.String,System.String)">
            <summary>
            Figures out the dbProvider and Connection string from a 
            connectionString name in a config file or explicit 
            ConnectionString and provider.         
            </summary>
            <param name="connectionString">Config file connection name or full connection string</param>
            <param name="providerName">optional provider name. If not passed with a connection string is considered Sql Server</param>
        </member>
        <member name="F:Westwind.Utilities.Data.DataAccessBase.dbProvider">
            <summary>
            The internally used dbProvider
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.ErrorMessage">
            <summary>
            An error message if a method fails
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.ErrorNumber">
            <summary>
            Optional error number returned by failed SQL commands
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.ParameterPrefix">
            <summary>
            The prefix used by the provider
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.UsePositionalParameters">
            <summary>
            Determines whether parameters are positional or named. Positional
            parameters are added without adding the name using just the ParameterPrefix
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.LeftFieldBracket">
            <summary>
            Character used for the left bracket on field names. Can be empty or null to use none
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.RightFieldBracket">
            <summary>
            Character used for the right bracket on field names. Can be empty or null to use none
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.ConnectionString">
            <summary>
            ConnectionString for the data access component
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.Transaction">
            <summary>
            A SQL Transaction object that may be active. You can 
            also set this object explcitly
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.Connection">
            <summary>
            The SQL Connection object used for connections
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.Timeout">
            <summary>
            The Sql Command execution Timeout in seconds.
            Set to -1 for whatever the system default is.
            Set to 0 to never timeout (not recommended).
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.ExecuteWithSchema">
            <summary>
            Determines whether extended schema information is returned for 
            queries from the server. Useful if schema needs to be returned
            as part of DataSet XML creation 
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Data.DataAccessBase.LastSql">
            <summary>
            Holds the last SQL string executed
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.OpenConnection">
            <summary>
            Opens a Sql Connection based on the connection string.
            Called internally but externally accessible. Sets the internal
            _Connection property.
            </summary>
            <returns></returns>
            <summary>
            Opens a Sql Connection based on the connection string.
            Called internally but externally accessible. Sets the internal
            _Connection property.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.CloseConnection(System.Data.Common.DbCommand)">
            <summary>
            Closes a connection
            </summary>
            <param name="Command"></param>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.CloseConnection">
            <summary>
            Closes an active connection. If a transaction is pending the 
            connection is held open.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.CreateCommand(System.String,System.Data.CommandType,System.Object[])">
            <summary>
            Creates a Command object and opens a connection
            </summary>        
            <param name="sql">Sql string to execute</param>
            <param name="parameters">Either values mapping to @0,@1,@2 etc. or DbParameter objects created with CreateParameter()</param>
            <returns>Command object or null on error</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.CreateCommand(System.String,System.Object[])">
            <summary>
            Creates a Command object and opens a connection
            </summary>        
            <param name="sql">Sql string to execute</param>
            <param name="parameters">Either values mapping to @0,@1,@2 etc. or DbParameter objects created with CreateParameter()</param>
            <returns>command object</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.AddParameters(System.Data.Common.DbCommand,System.Object[])">
            <summary>
            Adds parameters to a DbCommand instance. Parses value and DbParameter parameters
            properly into the command's Parameters collection.
            </summary>
            <param name="command">A preconfigured DbCommand object that should have all connection information set</param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.CreateParameter(System.String,System.Object)">
            <summary>
            Used to create named parameters to pass to commands or the various
            methods of this class.
            </summary>
            <param name="parameterName"></param>
            <param name="value"></param>
            <param name="dbType"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.CreateParameter(System.String,System.Object,System.Data.ParameterDirection)">
            <summary>
            Used to create named parameters to pass to commands or the various
            methods of this class.
            </summary>
            <param name="parameterName"></param>
            <param name="value"></param>
            <param name="dbType"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.CreateParameter(System.String,System.Object,System.Int32)">
            <summary>
            Used to create named parameters to pass to commands or the various
            methods of this class.
            </summary>
            <param name="parameterName"></param>
            <param name="value"></param>
            <param name="size"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.CreateParameter(System.String,System.Object,System.Data.DbType)">
            <summary>
            Used to create named parameters to pass to commands or the various
            methods of this class.
            </summary>
            <param name="parameterName"></param>
            <param name="value"></param>
            <param name="dbType"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.CreateParameter(System.String,System.Object,System.Data.DbType,System.Int32)">
            <summary>
            Used to create named parameters to pass to commands or the various
            methods of this class.
            </summary>
            <param name="parameterName"></param>
            <param name="value"></param>
            <param name="type"></param>
            <param name="size"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.BeginTransaction">
            <summary>
            Starts a new transaction on this connection/instance
            </summary>
            <remarks>Opens a Connection and keeps it open for the duration of the transaction. Calls to `.CloseConnection` while the transaction is active have no effect.</remarks>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.CommitTransaction">
            <summary>
            Commits all changes to the database and ends the transaction
            </summary>
            <remarks>Closes Connection</remarks>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.RollbackTransaction">
            <summary>
            Rolls back a transaction
            </summary>
            <remarks>Closes Connection</remarks>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteNonQuery(System.Data.Common.DbCommand)">
            <summary>
            Executes a non-query command and returns the affected records
            </summary>
            <param name="Command">Command should be created with GetSqlCommand to have open connection</param>       
            <returns>Affected Record count or -1 on error</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteNonQuery(System.String,System.Object[])">
            <summary>
            Executes a command that doesn't return any data. The result
            returns the number of records affected or -1 on error.
            </summary>
            <param name="sql">SQL statement as a string</param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
            <summary>
            Executes a command that doesn't return a data result. You can return
            output parameters and you do receive an AffectedRecords counter.
            .setItem("list_html", JSON.stringify(data));
            </summary>        
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteNonQueryAsync(System.Data.Common.DbCommand)">
            <summary>
            Executes a non-query command and returns the affected records
            </summary>
            <param name="Command">Command should be created with GetSqlCommand to have open connection</param>       
            <returns>Affected Record count or -1 on error</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteNonQueryAsync(System.String,System.Object[])">
            <summary>
            Executes a command that doesn't return any data. The result
            returns the number of records affected or -1 on error.
            </summary>
            <param name="sql">SQL statement as a string</param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
            <summary>
            Executes a command that doesn't return a data result. You can return
            output parameters and you do receive an AffectedRecords counter.
            .setItem("list_html", JSON.stringify(data));
            </summary>        
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteScalar(System.Data.Common.DbCommand,System.Object[])">
            <summary>
            Executes a command and returns a scalar value from it
            </summary>
            <param name="command">DbCommand containing command to run</param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
             or use @0,@1 parms in SQL and plain values
            </param>
            <returns>value or null on failure</returns>        
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteScalar(System.String,System.Object[])">
            <summary>
            Executes a Sql command and returns a single value from it.
            </summary>
            <param name="Sql">Sql string to execute</param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns>Result value or null. Check ErrorMessage on Null if unexpected</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteScalarAsync(System.Data.Common.DbCommand,System.Object[])">
            <summary>
            Executes a command and returns a scalar value from it
            </summary>
            <param name="command">DbCommand containing command to run</param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
             or use @0,@1 parms in SQL and plain values
            </param>
            <returns>value or null on failure</returns>        
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteScalarAsync(System.String,System.Object[])">
            <summary>
            Executes a Sql command and returns a single value from it.
            </summary>
            <param name="Sql">Sql string to execute</param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns>Result value or null. Check ErrorMessage on Null if unexpected</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.RunSqlScript(System.String,System.Boolean,System.Boolean)">
            <summary>
            Executes a long SQL script that contains batches (GO commands). This code
            breaks the script into individual commands and captures all execution errors.
            
            If ContinueOnError is false, operations are run inside of a transaction and
            changes are rolled back. If true commands are accepted even if failures occur
            and are not rolled back.
            </summary>
            <param name="script"></param>
            <param name="continueOnError"></param>
            <param name="scriptIsFile"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteReader(System.Data.Common.DbCommand,System.Object[])">
            <summary>
            Executes a SQL Command object and returns a SqlDataReader object
            </summary>
            <param name="command">Command should be created with GetSqlCommand and open connection</param>
            <param name="parameters"></param>
            <returns></returns>
            <returns>A SqlDataReader. Make sure to call Close() to close the underlying connection.</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteReader(System.String,System.Object[])">
            <summary>
            Executes a SQL command against the server and returns a DbDataReader
            </summary>
            <param name="sql">Sql String</param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteDynamicDataReader(System.String,System.Object[])">
            <summary>
            Executes a Sql statement and returns a dynamic DataReader instance 
            that exposes each field as a property
            </summary>
            <param name="sql">Sql String to executeTable</param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteReader``1(System.String,System.Object[])">
            <summary>
            Return a list of entities that are matched to an object
            </summary>
            <typeparam name="T">Type of object to create from data record</typeparam>
            <param name="sql">Sql string</param>
            <param name="parameters">
             DbParameters (CreateParameter()) for named parameters
             or use @0,@1 parms in SQL and plain values
            </param> 
            <returns>An enumerated list of objects or null</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteReader``1(System.Data.Common.DbCommand,System.Object[])">
            <summary>
            Allows querying and return a list of entities.
            </summary>	    
            <typeparam name="T"></typeparam>
            <param name="command"></param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
             or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.Query``1(System.String,System.Object[])">
            <summary>
            Executes a SQL statement and creates an object list using
            optimized Reflection.
            
            Not very efficient but provides an easy way to retrieve 
            an object list from query.
            </summary>
            <typeparam name="T">Entity type to create from DataReader data</typeparam>
            <param name="sql">Sql string to execute</param>        
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns>List of objects or null. Null is returned if there are no matches</returns>       
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.QueryList``1(System.String,System.Object[])">
            <summary>
            Returns list of objects from a query.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sql"></param>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.QueryListWithExclusions``1(System.String,System.String,System.Object[])">
            <summary>
            Returns list of objects from a query.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="sql">Sql Statement string</param>
            <param name="propertiesToSkip">Comma delimited list of property names to skip</param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.Query``1(System.Data.Common.DbCommand,System.Object[])">
            <summary>
            Executes a SQL command and creates an object list using
            Reflection.
            
            Not very efficient but provides an easy way to retrieve
            object lists from queries.
            </summary>
            <typeparam name="T">Entity type to create from DataReader data</typeparam>
            <param name="command">Command object containing configured SQL command to execute</param>        
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
             or use @0,@1 parms in SQL and plain values
            </param>
            <returns>List of objects or null. Null is returned if there are no matches</returns>   
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.QueryWithExclusions``1(System.String,System.String,System.Object[])">
            <summary>
            Executes a SQL statement and creates an object list using
            Reflection.
            
            Not very efficient but provides an easy way to retrieve
            object lists from queries
            </summary>
            <typeparam name="T">Entity type to create from DataReader data</typeparam>
            <param name="sql">Sql string to execute</param>        
            <param name="propertiesToExclude">Comma delimited list of properties that are not to be updated</param>
            <param name="parameters">
             DbParameters (CreateParameter()) for named parameters
             or use @0,@1 parms in SQL and plain values
            </param>
            <returns>List of objects</returns>        
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.QueryWithExclusions``1(System.Data.Common.DbCommand,System.String,System.Object[])">
            <summary>
            Executes a SQL statement and creates an object list using
            Reflection.
            
            Not very efficient but provides an easy way to retrieve
            </summary>
            <typeparam name="T">Entity type to create from DataReader data</typeparam>
            <param name="sql">Sql string to execute</param>        
            <param name="parameters">DbParameters to fill the SQL statement</param>
            <returns>List of objects</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteStoredProcedureReader(System.String,System.Object[])">
            <summary>
            Calls a stored procedure that returns a cursor results
            The result is returned as a DataReader
            </summary>
            <param name="storedProc">Name of the Stored Procedure to call</param>
            <param name="parameters">
            Parameters to pass. Note that if you need to pass out/inout/return parameters
            you need to pass DbParameter instances or use the CreateParameter() method
            </param>
            <returns>A DataReader or null on failure</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteStoredProcedureReader``1(System.String,System.Object[])">
            <summary>
            Calls a stored procedure that returns a cursor results
            The result is returned as an IEnumerable&lt;T&gt;> list
            </summary>
            <example>
            IEnumerable&lt;Customer%gt; customers = context.Db.ExecuteStoredProcedureReader&lt;Customer&gt;('GetCustomers',         
                         context.Db.CreateParameter('@cCompany','W%'));
            </example>
            <param name="storedProc">Name of the Stored Procedure to call</param>
            <param name="parameters">
            Use CreateParameter() for named, output or return parameters. Plain values for others.
            </param>
            <returns>A DataReader or null on failure</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteStoredProcedureNonQuery(System.String,System.Object[])">
            <summary>
            Executes a stored procedure that doesn't return a result set.
            </summary>
            <param name="storedProc">The Stored Procedure to call</param>
            <param name="parameters">
            Parameters to pass. Note that if you need to pass out/inout/return parameters
            you need to pass DbParameter instances or use the CreateParameter() method
            </param>
            <returns>> 0 or greater on success, -1 on failure</returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteTable(System.String,System.Data.Common.DbCommand,System.Object[])">
            <summary>
            Returns a DataTable from a Sql Command string passed in.
            </summary>
            <param name="tablename"></param>
            <param name="command"></param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
             or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteTable(System.String,System.String,System.Object[])">
            <summary>
            Returns a DataTable from a Sql Command string passed in.
            </summary>
            <param name="Tablename"></param>
            <param name="ConnectionString"></param>
            <param name="Sql"></param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
             or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteDataSet(System.String,System.Data.Common.DbCommand,System.Object[])">
            <summary>
            Returns a DataSet/DataTable from a Sql Command string passed in. 
            </summary>
            <param name="Tablename">The name for the table generated or the base names</param>
            <param name="Command"></param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
             or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteDataSet(System.String,System.String,System.Object[])">
            <summary>
            Executes a SQL command against the server and returns a DataSet of the result
            </summary>
            <param name="command"></param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteDataSet(System.Data.DataSet,System.String,System.Data.Common.DbCommand,System.Object[])">
            <summary>
            Returns a DataSet from a Sql Command string passed in.
            </summary>
            <param name="tableName"></param>
            <param name="command"></param>
            <param name="parameters"></param>
            <returns></returns>        
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.ExecuteDataSet(System.Data.DataSet,System.String,System.String,System.Object[])">
            <summary>
            Returns a DataTable from a Sql Command string passed in.
            </summary>
            <param name="tablename"></param>
            <param name="Command"></param>
            <param name="parameters"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.CreatePagingCommand(System.String,System.Int32,System.Int32,System.String,System.Object[])">
            <summary>
            Sql 2005 specific semi-generic paging routine
            </summary>
            <param name="sql"></param>
            <param name="pageSize"></param>
            <param name="page"></param>
            <param name="sortOrderFields"></param>
            <param name="Parameters"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.GetEntity(System.Object,System.Data.Common.DbCommand,System.String)">
            <summary>
            Generic routine to retrieve an object from a database record
            The object properties must match the database fields.
            </summary>
            <param name="entity">The object to update</param>
            <param name="command">Database command object</param>
            <param name="propertiesToSkip"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.GetEntity(System.Object,System.String,System.Object[])">
            <summary>
            Retrieves a single record and returns it as an entity
            </summary>
            <param name="entity"></param>
            <param name="sql"></param>        
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.GetEntity(System.Object,System.String,System.String,System.Object,System.String)">
            <summary>
            Generic routine to return an Entity that matches the field names of a 
            table exactly.
            </summary>
            <param name="entity"></param>
            <param name="table"></param>
            <param name="keyField"></param>
            <param name="keyValue"></param>
            <param name="propertiesToSkip"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.Find``1(System.Object,System.String,System.String)">
            <summary>
            Returns a single entity based on a keyfield and key value
            </summary>
            <typeparam name="T">Type of entity to populate</typeparam>
            <param name="keyValue">Value to look up in keyfield</param>
            <param name="tableName">Name of the table to work on</param>
            <param name="keyField">Field that is used for the key lookup</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.Find``1(System.String,System.Object[])">
            <summary>
            Returns the first matching record retrieved from data based on a SQL statement
            as an entity or null if no match was found.        
            </summary>
            <typeparam name="T">Entity type to fill</typeparam>
            <param name="sql">SQL string to execute. Use @0,@1,@2 for parameters.
            
            Recommend you use `TOP1` in your SQL statements to limit the 
            amount of data returned from the underlying query even though
            a full list returns the same result.
            </param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.FindEx``1(System.String,System.String,System.Object[])">
            <summary>
            Returns an entity that is the first match from a sql statement string.
            </summary>
            <typeparam name="T">Entity type to return</typeparam>
            <param name="sql">Sql string to execute. Use @0,@1,@2 for positional parameters</param>
            <param name="propertiesToSkip">fields to not update from the resultset</param>
            <param name="parameters">
            DbParameters (CreateParameter()) for named parameters
            or use @0,@1 parms in SQL and plain values
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.UpdateEntity(System.Object,System.String,System.String,System.String)">
            <summary>
            Updates an entity object that has matching fields in the database for each
            public property. Kind of a poor man's quick entity update mechanism.
            
            Note this method will not save if the record doesn't already exist in the db.
            </summary>        
            <param name="entity">entity to update</param>
            <param name="table">the table name to update</param>
            <param name="keyField">keyfield used to find entity</param>
            <param name="propertiesToSkip"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.GetUpdateEntityCommand(System.Object,System.String,System.String,System.String)">
            <summary>
            Updates an entity object that has matching fields in the database for each
            public property. Kind of a poor man's quick entity update mechanism.
            
            Note this method will not save if the record doesn't already exist in the db.
            </summary>        
            <param name="entity">entity to update</param>
            <param name="table">the table name to update</param>
            <param name="keyField">keyfield used to find entity</param>
            <param name="propertiesToSkip"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.UpdateEntity(System.Object,System.String,System.String,System.String,System.String)">
            <summary>
            This version of UpdateEntity allows you to specify which fields to update and
            so is a bit more efficient as it only checks for specific fields in the database
            and the underlying table.
            </summary>
            <seealso cref="M:Westwind.Utilities.Data.DataAccessBase.SaveEntity(System.Object,System.String,System.String,System.String)"/>
            <seealso cref="M:Westwind.Utilities.Data.DataAccessBase.InsertEntity(System.Object,System.String,System.String,System.Boolean)"/>
            <param name="entity">Entity to update</param>
            <param name="table">DB Table to udpate</param>
            <param name="keyField">The keyfield to query on</param>
            <param name="propertiesToSkip">fields to skip in update</param>
            <param name="fieldsToUpdate">fields that should be updated</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.GetUpdateEntityCommand(System.Object,System.String,System.String,System.String,System.String)">
            <summary>
            Gets a DbCommand that creates an update statement.
            that allows you to specify which fields to update and
            so is a bit more efficient as it only checks for specific fields in the database
            and the underlying table.
            </summary>
            <seealso cref="M:Westwind.Utilities.Data.DataAccessBase.SaveEntity(System.Object,System.String,System.String,System.String)"/>
            <seealso cref="M:Westwind.Utilities.Data.DataAccessBase.InsertEntity(System.Object,System.String,System.String,System.Boolean)"/>
            <param name="entity">Entity to update</param>
            <param name="table">DB Table to udpate</param>
            <param name="keyField">The keyfield to query on</param>
            <param name="propertiesToSkip">fields to skip in update</param>
            <param name="fieldsToUpdate">fields that should be updated</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.InsertEntity(System.Object,System.String,System.String,System.Boolean)">
            <summary>
            Inserts an object into the database based on its type information.
            The properties must match the database structure and you can skip
            over fields in the propertiesToSkip list.        
            </summary>        
            <seealso cref="M:Westwind.Utilities.Data.DataAccessBase.SaveEntity(System.Object,System.String,System.String,System.String)" />        
            <param name="entity"></param>
            <param name="table"></param>
            <param name="KeyField"></param>
            <param name="propertiesToSkip"></param>
            <returns>
            Scope Identity or Null (when returnIdentityKey is true
            Otherwise affected records
            </returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.InsertEntityAsync(System.Object,System.String,System.String,System.Boolean)">
            <summary>
            Inserts an object into the database based on its type information.
            The properties must match the database structure and you can skip
            over fields in the propertiesToSkip list.        
            </summary>        
            <seealso cref="M:Westwind.Utilities.Data.DataAccessBase.SaveEntity(System.Object,System.String,System.String,System.String)" />        
            <param name="entity"></param>
            <param name="table"></param>
            <param name="KeyField"></param>
            <param name="propertiesToSkip"></param>
            <returns>
            Scope Identity or Null (when returnIdentityKey is true
            Otherwise affected records
            </returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.GetInsertEntityCommand(System.Object,System.String,System.String)">
            <summary>
            Gets the DbCommand used to insert an object into the database based on its type information.
            The properties must match the database structure and you can skip
            over fields in the propertiesToSkip list.        
            </summary>        
            <seealso cref="M:Westwind.Utilities.Data.DataAccessBase.SaveEntity(System.Object,System.String,System.String,System.String)" />        
            <param name="entity"></param>
            <param name="table"></param>
            <param name="KeyField"></param>
            <returns>
            Scope Identity or Null (when returnIdentityKey is true
            Otherwise affected records
            </returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.SaveEntity(System.Object,System.String,System.String,System.String)">
            <summary>
            Saves an enity into the database using insert or update as required.
            Requires a keyfield that exists on both the entity and the database.
            </summary>
            <param name="entity">entity to save</param>
            <param name="table">table to save to</param>
            <param name="keyField">keyfield to update</param>
            <param name="propertiesToSkip">optional fields to skip when updating (keys related items etc)</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.SetError(System.String,System.Int32)">
            <summary>
            Sets the error message for the failure operations
            </summary>
            <param name="Message"></param>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.SetError(System.String)">
            <summary>
            Sets the error message and error number.
            </summary>
            <param name="message"></param>
        </member>
        <member name="M:Westwind.Utilities.Data.DataAccessBase.SetError">
            <summary>
            Sets the error message for failure operations.
            </summary>
        </member>
        <member name="T:Westwind.Utilities.Data.SqlDataAccess">
            <summary>
            Sql Server specific implementation of the DataAccessBase class to
            provide an easy to use Data Access Layer (DAL) with single line
            operations for most data retrieval and non-query operations.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Data.SqlDataAccess.CreatePagingCommand(System.String,System.Int32,System.Int32,System.String,System.Object[])">
            <summary>
            Sql 2005 and later specific semi-generic paging routine
            </summary>
            <param name="sql"></param>
            <param name="pageSize"></param>
            <param name="page"></param>
            <param name="sortOrderFields"></param>
            <param name="Parameters"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Data.DataTableDynamicExtensions">
            <summary>
            Extends the DataTable to provide access to DynamicDataRow 
            data.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Data.DataTableDynamicExtensions.DynamicRow(System.Data.DataTable,System.Int32)">
            <summary>
            Returns a dynamic DataRow instance that can be accessed
            with the field name as a property
            </summary>
            <param name="index"></param>
            <returns></returns>taTab
        </member>
        <member name="M:Westwind.Utilities.Data.DataTableDynamicExtensions.DynamicRows(System.Data.DataTable)">
            <summary>
            Returns a dynamic list of rows so you can reference them with
            row.fieldName
            </summary>
            <param name="dt"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Data.DynamicDataRows">
            <summary>
            Helper class that extends a DataRow collection to 
            be exposed as individual <see cref="T:Westwind.Utilities.Data.DynamicDataRow"/>  objects
            </summary>
        </member>
        <member name="T:Westwind.Utilities.Data.DynamicDataReader">
            <summary>
            This class provides an easy way to use object.property
            syntax with a DataReader by wrapping a DataReader into
            a dynamic object.
            
            The class also automatically fixes up DbNull values
            (null into .NET and DbNUll)
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Data.DynamicDataReader.DataReader">
            <summary>
            Cached Instance of DataReader passed in
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Data.DynamicDataReader.#ctor(System.Data.IDataReader)">
            <summary>
            Pass in a loaded DataReader
            </summary>
            <param name="dataReader">DataReader instance to work off</param>
        </member>
        <member name="M:Westwind.Utilities.Data.DynamicDataReader.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
            <summary>
            Returns a value from the current DataReader record
            If the field doesn't exist null is returned.
            DbNull values are turned into .NET nulls.
            </summary>
            <param name="binder"></param>
            <param name="result"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Data.DynamicDataRow">
            <summary>
            This class provides an easy way to turn a DataRow 
            into a Dynamic object that supports direct property
            access to the DataRow fields.
            
            The class also automatically fixes up DbNull values
            (null into .NET and DbNUll to DataRow)
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Data.DynamicDataRow.DataRow">
            <summary>
            Instance of object passed in
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Data.DynamicDataRow.#ctor(System.Data.DataRow)">
            <summary>
            Pass in a DataRow to work off
            </summary>
            <param name="instance"></param>
        </member>
        <member name="M:Westwind.Utilities.Data.DynamicDataRow.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
            <summary>
            Returns a value from a DataRow items array.
            If the field doesn't exist null is returned.
            DbNull values are turned into .NET nulls.
            
            </summary>
            <param name="binder"></param>
            <param name="result"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Data.DynamicDataRow.TrySetMember(System.Dynamic.SetMemberBinder,System.Object)">
            <summary>
            Property setter implementation tries to retrieve value from instance 
            first then into this object
            </summary>
            <param name="binder"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.ValidationErrorCollection">
            <summary>
            A collection of ValidationError objects that is used to collect
            errors that occur duing calls to the Validate method.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.ValidationErrorCollection.Item(System.Int32)">
            <summary>
            Indexer property for the collection that returns and sets an item
            </summary>
        </member>
        <member name="M:Westwind.Utilities.ValidationErrorCollection.Add(Westwind.Utilities.ValidationError)">
            <summary>
            Adds a new error to the collection
            <seealso>Class ValidationError</seealso>
            </summary>
            <param name="Error">
            Validation Error object
            </param>
            <returns>Void</returns>
        </member>
        <member name="M:Westwind.Utilities.ValidationErrorCollection.Add(System.String,System.String,System.String)">
            <summary>
            Adds a new error to the collection
            <seealso>Class ValidationErrorCollection</seealso>
            </summary>
            <param name="Message">
            Message of the error
            </param>
            <param name="FieldName">
            optional field name that it applies to (used for Databinding errors on 
            controls)
            </param>
            <param name="ID">
            An optional ID you assign the error
            </param>
            <returns>Void</returns>
        </member>
        <member name="M:Westwind.Utilities.ValidationErrorCollection.AddFormat(System.String,System.String,System.String,System.Object[])">
            <summary>
            Like Add but allows specifying of a format  
            </summary>
            <param name="Message"></param>
            <param name="FieldName"></param>
            <param name="ID"></param>
            <param name="arguments"></param>
        </member>
        <member name="M:Westwind.Utilities.ValidationErrorCollection.Remove(System.Int32)">
            <summary>
            Removes the item specified in the index from the Error collection
            </summary>
            <param name="Index"></param>
        </member>
        <member name="M:Westwind.Utilities.ValidationErrorCollection.Assert(System.Boolean,System.String,System.String,System.String)">
            <summary>
            Adds a validation error if the condition is true. Otherwise no item is 
            added.
            <seealso>Class ValidationErrorCollection</seealso>
            </summary>
            <param name="Condition">
            If true this error is added. Otherwise not.
            </param>
            <param name="Message">
            The message for this error
            </param>
            <param name="FieldName">
            Name of the UI field (optional) that this error relates to. Used optionally
             by the databinding classes.
            </param>
            <param name="ID">
            An optional Error ID.
            </param>
            <returns>value of condition</returns>
        </member>
        <member name="M:Westwind.Utilities.ValidationErrorCollection.Assert(System.Boolean,System.String)">
            <summary>
            Adds a validation error if the condition is true. Otherwise no item is 
            added.
            <seealso>Class ValidationErrorCollection</seealso>
            </summary>
            <param name="Condition">
            If true the Validation Error is added.
            </param>
            <param name="Message">
            The Error Message for this error.
            </param>
            <returns>value of condition</returns>
        </member>
        <member name="M:Westwind.Utilities.ValidationErrorCollection.Assert(System.Boolean,System.String,System.String)">
            <summary>
            Adds a validation error if the condition is true. Otherwise no item is 
            added.
            <seealso>Class ValidationErrorCollection</seealso>
            </summary>
            <param name="Condition">
            If true the Validation Error is added.
            </param>
            <param name="Message">
            The Error Message for this error.
            </param>
            <returns>string</returns>
        </member>
        <member name="M:Westwind.Utilities.ValidationErrorCollection.Assert(System.Boolean,Westwind.Utilities.ValidationError)">
            <summary>
            Asserts a business rule - if condition is true it's added otherwise not.
            <seealso>Class ValidationErrorCollection</seealso>
            </summary>
            <param name="Condition">
            If this condition evaluates to true the Validation Error is added
            </param>
            <param name="Error">
            Validation Error Object
            </param>
            <returns>value of condition</returns>
        </member>
        <member name="M:Westwind.Utilities.ValidationErrorCollection.ToString">
            <summary>
            Returns a string representation of the errors in this collection.
            The string is separated by CR LF after each line.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ValidationErrorCollection.ToHtml">
            <summary>
            Returns an HTML representation of the errors in this collection.
            The string is returned as an HTML unordered list.
            </summary>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.ValidationError">
            <summary>
            Object that holds a single Validation Error for the business object
            </summary>
        </member>
        <member name="P:Westwind.Utilities.ValidationError.Message">
            <summary>
            The error message for this validation error.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.ValidationError.ControlID">
            <summary>
            The name of the field that this error relates to.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.ValidationError.ID">
            <summary>
            An ID set for the Error. This ID can be used as a correlation between bus object and UI code.
            </summary>
        </member>
        <member name="T:Westwind.Utilities.InternetTools.HttpClient">
             <summary>
             An HTTP wrapper class that abstracts away the common needs for adding post keys
             and firing update events as data is received. This class is real easy to use
             with many common operations requiring single method calls.
            
             The class also provides automated cookie and state handling, GZip compression
             decompression, simplified proxy and authentication mechanisms to provide a 
             simple single level class interface. The underlying WebRequest is also 
             exposed so you will not loose any functionality from the .NET BCL class.
             </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.PostMode">
            <summary>
            Determines how data is POSTed when when using AddPostKey() and other methods
            of posting data to the server. Support UrlEncoded, Multi-Part, XML and Raw modes.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.Username">
            <summary>
             User name used for Authentication. 
             To use the currently logged in user when accessing an NTLM resource you can use "AUTOLOGIN".
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.Password">
            <summary>
            Password for Authentication.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.ProxyAddress">
            <summary>
            Address of the Proxy Server to be used.
            Use optional DEFAULTPROXY value to specify that you want to IE's Proxy Settings
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.ProxyBypass">
            <summary>
            Semicolon separated Address list of the servers the proxy is not used for.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.ProxyUsername">
            <summary>
            Username for a password validating Proxy. Only used if the proxy info is set.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.ProxyPassword">
            <summary>
            Password for a password validating Proxy. Only used if the proxy info is set.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.Timeout">
            <summary>
            Timeout for the Web request in seconds. Times out on connection, read and send operations.
            Default is 30 seconds.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.Cancelled">
            <summary>
            Returns whether the last request was cancelled through one of the
            events.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.ContentType">
            <summary>
            Use this option to set a custom content type. 
            If possible use PostMode to specify a predefined
            content type as it will ensure that Post data is
            appropriately formatted.
            
            If setting the content type manually POST data
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.UseGZip">
            <summary>
            When true will automatically add Accept-Encoding: gzip,deflate header
            and automatically decompress gzip and deflate content
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.HttpTimings">
            <summary>
            Keeps track of request timings for the last executed request. Tracks started, 
            firstbyte and lastbyte times as well as ms to first byte 
            (actually first 'buffer' loaded) and last byte.
            </summary>
            <remarks>Does not work with DownloadStream() since you control the stream's operations.</remarks>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.ErrorMessage">
            <summary>
            Error Message if the Error Flag is set or an error value is returned from a method.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.Error">
            <summary>
            Error flag if an error occurred.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.ThrowExceptions">
            <summary>
            Determines whether errors cause exceptions to be thrown. By default errors 
            are handled in the class and the Error property is set for error conditions.
            (not implemented at this time).
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.HandleCookies">
            <summary>
            If set to true will automatically track cookies
            between multiple successive requests on this 
            instance. Uses the CookieCollection property
            to persist cookie status.
            
            When set posts values in the CookieCollection,
            and on return fills the CookieCollection with
            cookies from the Response.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.Cookies">
            <summary>
            Holds the internal Cookie collection before or after a request. This 
            collection is used only if HandleCookies is set to .t. which also causes it
             to capture cookies and repost them on the next request.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.WebResponse">
            <summary>
            WebResponse object that is accessible after the request is complete and 
            allows you to retrieve additional information about the completed request.
            
            The Response Stream is already closed after the GetUrl methods complete 
            (except GetUrlResponse()) but you can access the Response object members 
            and collections to retrieve more detailed information about the current 
            request that completed.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.WebRequest">
            <summary>
            WebRequest object that can be manipulated and set up for the request if you
             called .
            
            Note: This object must be recreated and reset for each request, since a 
            request's life time is tied to a single request. This object is not used if
             you specify a URL on any of the GetUrl methods since this causes a default
             WebRequest to be created.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.BufferSize">
            <summary>
            The buffersize used for the Send and Receive operations
            </summary>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.UserAgent">
            <summary>
            Lets you specify the User Agent  browser string that is sent to the server.
             This allows you to simulate a specific browser if necessary.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.#ctor">
            <summary>
            The HttpClient Default Constructor
            </summary>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.CreateWebRequestObject(System.String)">
            <summary>
            Creates a new WebRequest instance that can be set prior to calling the 
            various Get methods. You can then manipulate the WebRequest property, to 
            custom configure the request.
            
            Instead of passing a URL you  can then pass null.
            
            Note - You need a new Web Request for each and every request so you need to
             set this object for every call if you manually customize it.
            </summary>
            <param name="String UrlUrl">
            The Url to access with this WebRequest
            </param>
            <returns>Boolean</returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.ResetPostData">
            <summary>
            Resets the Post buffer by clearing out all existing content
            </summary>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.AddPostKey(System.String,System.Byte[])">
            <summary>
            Adds POST form variables to the request buffer.
            PostMode determines how parms are handled.
            </summary>
            <param name="key">Key value or raw buffer depending on post type</param>
            <param name="value">Value to store. Used only in key/value pair modes</param>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.AddPostKey(System.String,System.String)">
            <summary>
            Adds POST form variables to the request buffer.
            PostMode determines how parms are handled.
            </summary>
            <param name="key">Key value or raw buffer depending on post type</param>
            <param name="value">Value to store. Used only in key/value pair modes</param>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.AddPostKey(System.String)">
            <summary>
            Adds a fully self contained POST buffer to the request.
            Works for XML or previously encoded content.
            </summary>
            <param name="fullPostBuffer">String based full POST buffer</param>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.AddPostKey(System.Byte[])">
            <summary>
            Adds a fully self contained POST buffer to the request.
            Works for XML or previously encoded content.
            </summary>	    
            <param name="fullPostBuffer">Byte array of a full POST buffer</param>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.AddPostFile(System.String,System.String,System.String)">
            <summary>
            Allows posting a file to the Web Server. Make sure that you 
            set PostMode
            </summary>
            <param name="key"></param>
            <param name="fileName"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.GetPostBuffer">
            <summary>
            Returns the contents of the post buffer. Useful for debugging
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.GetUrlStream(System.String)">
            <summary>
            Return a the result from an HTTP Url into a StreamReader.
            Client code should call Close() on the returned object when done reading.
            </summary>
            <param name="url">Url to retrieve.</param>		
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.DownloadStream(System.String)">
            <summary>
            Return a the result from an HTTP Url into a StreamReader.
            Client code should call Close() on the returned object when done reading.
            </summary>
            <param name="url">Url to retrieve.</param>		
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.GetUrlResponse(System.String)">
            <summary>
            Return an HttpWebResponse object for a request. You can use the Response to
            read the result as needed. This is a low level method. Most of the other 'Get'
            methods call this method and process the results further.
            </summary>
            <remarks>Important: The Response object's Close() method must be called when you are done with the object.</remarks>
            <param name="url">Url to retrieve.</param>
            <returns>An HttpWebResponse Object</returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.DownloadResponse(System.String)">
            <summary>
            Return an HttpWebResponse object for a request. You can use the Response to
            read the result as needed. This is a low level method. Most of the other 'Get'
            methods call this method and process the results further.
            </summary>
            <remarks>Important: The Response object's Close() method must be called when you are done with the object.</remarks>
            <param name="url">Url to retrieve.</param>
            <returns>An HttpWebResponse Object</returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.StreamPostBuffer(System.IO.Stream)">
            <summary>
            Sends the Postbuffer to the server
            </summary>
            <param name="PostData"></param>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.GetUrl(System.String,System.Int64,System.Text.Encoding)">
            <summary>
            Returns the content of a URL as a string
            </summary>
            <param name="url"></param>
            <param name="bufferSize">The intermediate download buffer used</param>
            <param name="encoding">A .NET Encoding scheme or null to attempt sniffing from Charset.</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.DownloadString(System.String,System.Int64,System.Text.Encoding)">
            <summary>
            Returns the content of a URL as a string using a specified Encoding
            </summary>
            <param name="url"></param>
            <param name="bufferSize">Internal download buffer size used to hold data chunks.</param>
            <param name="encoding">A .NET Encoding scheme or null to attempt sniffing from Charset.</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.DownloadStringAsync(System.String,System.Int64,System.Text.Encoding)">
            <summary>
            Returns the content of a URL as a string using a specified Encoding
            </summary>
            <param name="url"></param>
            <param name="bufferSize">Internal download buffer size used to hold data chunks.</param>
            <param name="encoding">A .NET Encoding scheme or null to attempt sniffing from Charset.</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.GetUrlPartial(System.String,System.Int32)">
            <summary>
            Returns a partial response from the URL by specifying only 
            given number of bytes to retrieve. This can reduce network
            traffic and keep string formatting down if you are only 
            interested a small port at the top of the page. Also 
            returns full headers.
            </summary>
            <param name="url"></param>
            <param name="size"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.DownloadStringPartial(System.String,System.Int32)">
            <summary>
            Returns a partial response from the URL by specifying only 
            given number of bytes to retrieve. This can reduce network
            traffic and keep string formatting down if you are only 
            interested a small port at the top of the page. Also 
            returns full headers.
            </summary>
            <param name="url"></param>
            <param name="size"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.DownloadBytes(System.String,System.Int64)">
            <summary>
            Retrieves URL into an Byte Array.
            </summary>
            <remarks>Fires the ReceiveData Event</remarks>
            <param name="url">Url to read</param>
            <param name="bufferSize">Size of the buffer for each read. 0 = 8192</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.DownloadBytesAsync(System.String,System.Int64)">
            <summary>
            Retrieves URL into an Byte Array.
            </summary>
            <remarks>Fires the ReceiveData Event</remarks>
            <param name="url">Url to read</param>
            <param name="bufferSize">Size of the buffer for each read. 0 = 8192</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.GetUrlFile(System.String,System.Int64,System.String)">
            <summary>
            Writes the output from the URL request to a file firing events.
            </summary>
            <param name="Url">Url to fire</param>
            <param name="BufferSize">Buffersize - how often to fire events</param>
            <param name="OutputFile">File to write response to</param>
            <returns>true or false</returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.DownloadFile(System.String,System.Int64,System.String)">
            <summary>
            Writes the output from the URL request to a file firing events.
            </summary>
            <param name="url">Url to fire</param>
            <param name="bufferSize">Buffersize - how often to fire events</param>
            <param name="outputFile">File to write response to</param>
            <returns>true or false</returns>
        </member>
        <member name="P:Westwind.Utilities.InternetTools.HttpClient.IgnoreCertificateErrors">
            <summary>
            Sets the certificate policy.
            
            Note this is a global setting and affects the entire application.
            It's recommended you set this for the application and not on 
            a per request basis.
            </summary>
            <param name="Ignore"></param>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.CheckCertificateCallback(System.Object,System.Security.Cryptography.X509Certificates.X509Certificate,System.Security.Cryptography.X509Certificates.X509Chain,System.Net.Security.SslPolicyErrors)">
            <summary>
            Handles the Certificate check
            </summary>
            <param name="sender"></param>
            <param name="cert"></param>
            <param name="chain"></param>
            <param name="errors"></param>
            <returns></returns>
        </member>
        <member name="E:Westwind.Utilities.InternetTools.HttpClient.ReceiveData">
            <summary>
            Fires progress events when receiving data from the server
            </summary>
        </member>
        <member name="E:Westwind.Utilities.InternetTools.HttpClient.SendData">
            <summary>
            Fires progress events when using GetUrlEvents() to retrieve a URL.
            </summary>
        </member>
        <member name="T:Westwind.Utilities.InternetTools.HttpClient.ReceiveDataEventArgs">
            <summary>
            Event arguments passed to the ReceiveData event handler on each block of data sent
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.HttpClient.ReceiveDataEventArgs.CurrentByteCount">
            <summary>
            Size of the cumulative bytes read in this request
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.HttpClient.ReceiveDataEventArgs.TotalBytes">
            <summary>
            The number of total bytes of this request
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.HttpClient.ReceiveDataEventArgs.NumberOfReads">
            <summary>
            The number of reads that have occurred - how often has this event been called.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.HttpClient.ReceiveDataEventArgs.CurrentChunk">
            <summary>
            The current chunk of data being read
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.HttpClient.ReceiveDataEventArgs.Done">
            <summary>
            Flag set if the request is currently done.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.HttpClient.ReceiveDataEventArgs.Cancel">
            <summary>
            Flag to specify that you want the current request to cancel. This is a write-only flag
            </summary>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.HttpClient.Dispose">
            <summary>
            Releases response and request data
            </summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="T:Westwind.Utilities.InternetTools.HttpPostMode">
            <summary>
            Enumeration of the various HTTP POST modes supported by HttpClient
            </summary>
        </member>
        <member name="T:Westwind.Utilities.InternetTools.AcceptAllCertificatePolicy">
            <summary>
            Internal object used to allow setting WebRequest.CertificatePolicy to 
            not fail on Cert errors
            </summary>
        </member>
        <member name="T:Westwind.Utilities.InternetTools.SmtpClientNative">
            <summary>
            SMTP Wrapper around System.Net.Email.SmtpClient. Provided 
            here mainly to provide compatibility with existing wwSmtp code
            and to provide a slightly more user friendly front end interface
            on a single object.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.MailServer">
            <summary>
            Mail Server to send message through. Should be a domain name 
            (mail.yourserver.net) or IP Address (211.123.123.123).
            
            You can also provide a port number as part of the string which will 
            override the ServerPort (yourserver.net:211)
            <seealso>Class wwSmtp</seealso>
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.ServerPort">
            <summary>
            Port on the mail server to send through. Defaults to port 25.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.UseSsl">
            <summary>
            Use Tls Security
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.Recipient">
            <summary>
            Email address or addresses of the Recipient. Comma delimit multiple addresses. To have formatted names use
            "Rick Strahl" &lt;rstrahl@west-wind.com&gt;
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.CC">
            <summary>
            Carbon Copy Recipients
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.BCC">
            <summary>
            Blind Copy Recipients
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.SenderEmail">
            <summary>
            Email address of the sender
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.SenderName">
            <summary>
            Display name of the sender (optional)
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.ReplyTo">
            <summary>
            The ReplyTo address
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.Subject">
            <summary>
            Message Subject.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.Message">
            <summary>
            The body of the message.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.Username">
            <summary>
            Username to connect to the mail server.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.Password">
            <summary>
            Password to connect to the mail server.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.Attachments">
            <summary>
            Any attachments you'd like to send
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.AttachmentList">
            <summary>
            List of attachment objects
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.ContentType">
            <summary>
            The content type of the message. text/plain default or you can set to any other type like text/html
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.CharacterEncoding">
            <summary>
            Character Encoding for the message.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.Encoding">
            <summary>
            The character Encoding used to write the stream out to disk
            Defaults to the default Locale used on the server.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.AlternateText">
            <summary>
            
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.AlternateTextContentType">
            <summary>
            The content type for the alternate 
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.UserAgent">
            <summary>
            The user agent for the x-mailer
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.Priority">
            <summary>
            Determines the priority of the message
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.ReturnReceipt">
            <summary>
            Determines whether a return receipt is sent
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.AlternateViews">
            <summary>
            
            </summary>
            <returns></returns>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.LogFile">
            <summary>
            An optional file name that appends logging information for the TCP/IP messaging
            to the specified file.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.HandleExceptions">
            <summary>
            Determines whether wwSMTP passes back errors as exceptions or
            whether it sets error properties. Right now only error properties
            work reliably.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.ErrorMessage">
            <summary>
            An Error Message if the result is negative or Error is set to true;
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.Error">
            <summary>
            Error Flag set when an error occurs.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.Timeout">
            <summary>
            Connection timeouts for the mail server in seconds. If this timeout is exceeded waiting for a connection
            or for receiving or sending data the request is aborted and fails.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.Headers">
            <summary>
            SMTP headers for this email request
            </summary>
        </member>
        <member name="E:Westwind.Utilities.InternetTools.SmtpClientNative.SendComplete">
            <summary>
            Event fired when sending of a message or multiple messages
            is complete and the connection is to be closed. This event
            occurs only once per connection as opposed to the MessageSendComplete
            event which fires after each message is sent regardless of the
            number of SendMessage operations.
            </summary>
        </member>
        <member name="E:Westwind.Utilities.InternetTools.SmtpClientNative.SendError">
            <summary>
            Event fired when an error occurs during processing and before
            the connection is closed down.
            </summary>
        </member>
        <member name="F:Westwind.Utilities.InternetTools.SmtpClientNative.smtp">
            <summary>
            Internal instance of SmtpClient that holds the 'connection'
            effectively.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.AddHeader(System.String,System.String)">
            <summary>
            Adds an Smtp header to this email request. Headers are 
            always cleared after a message has been sent or failed.
            </summary>
            <param name="headerName"></param>
            <param name="value"></param>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.AddHeadersFromString(System.String)">
            <summary>
            Adds headers from a CR/LF separate string that has key:value header pairs 
            defined.
            </summary>
            <param name="headers"></param>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.LoadSmtpClient">
            <summary>
            Lets you load the actual SMTP client instance
            prior to use so you can manipulate the actual
            Smtp instance.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.Connect">
            <summary>
            Starts a new SMTP session. Note this doesn't actually open a connection
            but just configures and sets up the SMTP session. The actual connection
            is opened only when a message is actually sent
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.Close">
            <summary>
            Cleans up and closes the connection
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.SendMail">
            <summary>
            Fully self contained mail sending method. Sends an email message by connecting 
            and disconnecting from the email server.
            </summary>
            <returns>true or false</returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.SendMailAsync">
            <summary>
            Run mail sending operation on a separate thread and asynchronously
            Operation does not return any information about completion.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.SendMessage(System.String,System.String,System.String)">
            <summary>
            Sends an individual message. Allows sending several messages
            on the same SMTP session without having to reconnect each time.
            
            This version assigns default properties assigned from the main
            mail object and allows overriding only of recipients
            
            Call after Connect() has been called and call Close() to 
            close the connection afterwards
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.GetMessage">
            <summary>
            Configures the message interface
            </summary>
            <param name="msg"></param>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.AssignMailAddresses(System.Net.Mail.MailAddressCollection,System.String)">
            <summary>
            Assigns mail addresses from a string or comma delimited string list.
            Facilitates 
            </summary> 
            <param name="recipients"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.GetEmailFromFullAddress(System.String)">
            <summary>
            Strips out just the email address from a full email address that might contain a display name
            in the format of: "Web Monitor" &lt;rstrahl@west-wind.com&gt;
            </summary>
            <param name="fullEmail">Full email address to parse. Note currently only &lt; and &gt; tags are recognized as message delimiters</param>
            <returns>only the email address</returns>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.AddAlternateView(System.Net.Mail.AlternateView)">
            <summary>
            Adds a new Alternate view to the request. Passed from FoxPro
            which sets up this object.
            </summary>
            <param name="text"></param>
            <param name="contentType"></param>
            <param name="contentId"></param>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.LogString(System.String)">
            <summary>
            Logs a message to the specified LogFile
            </summary>
            <param name="FormatString"></param>
            <param name="??"></param>
        </member>
        <member name="M:Westwind.Utilities.InternetTools.SmtpClientNative.SetError(System.String)">
            <summary>
            Internally used to set errors
            </summary>
            <param name="errorMessage"></param>
        </member>
        <member name="T:Westwind.Utilities.InternetTools.delSmtpNativeEvent">
            <summary>
            Delegate used to handle Completion and failure events
            </summary>
            <param name="Smtp"></param>
        </member>
        <member name="P:Westwind.Utilities.Logging.ILogAdapter.ConnectionString">
            <summary>
            ConnectionString or other string that identifies the output medium
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.ILogAdapter.LogFilename">
            <summary>
            The name of the log file if a file is involved
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Logging.ILogAdapter.WriteEntry(Westwind.Utilities.Logging.WebLogEntry)">
            <summary>
            Writes an entry into the log
            </summary>
            <param name="webEntry"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.ILogAdapter.GetEntry(System.Int32)">
            <summary>
            Retireves an individual entry from the log
            </summary>
            <param name="id"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.ILogAdapter.GetEntries(Westwind.Utilities.Logging.ErrorLevels,System.Int32,System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.String)">
            <summary>
            Retrieves a filtered list of entries
            </summary>
            <param name="errorLevel"></param>
            <param name="count"></param>
            <param name="dateFrom"></param>
            <param name="dateTo"></param>
            <param name="FieldList"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.ILogAdapter.GetEntryList(Westwind.Utilities.Logging.ErrorLevels,System.Int32,System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.String)">
            <summary>
            Returns a filtered list of entries as a strongly typed list
            </summary>
            <param name="errorLevel"></param>
            <param name="count"></param>
            <param name="dateFrom"></param>
            <param name="dateTo"></param>
            <param name="FieldList"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.ILogAdapter.CreateLog">
            <summary>
            Creates the a standard Log store if it doesn't exist
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.ILogAdapter.DeleteLog">
            <summary>
            Deletes the log file completely
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.ILogAdapter.Clear">
            <summary>
            Clears the Log store completely
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.ILogAdapter.Clear(System.Int32)">
            <summary>
            Clears the log but leaves the last entries intact
            </summary>
            <param name="countToLeave"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.ILogAdapter.Clear(System.Decimal)">
            <summary>
            Clears the log by a number of days
            </summary>
            <param name="daysToClear"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.ILogAdapter.GetEntryCount(Westwind.Utilities.Logging.ErrorLevels)">
            <summary>
            Returns a count of total log entries
            </summary>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Logging.LogEntry">
            <summary>
            Message object that contains information about the current error information
            
            Note: a WebLogEntry specific to Web applications lives in the
            Westwind.Web assembly.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogEntry.Id">
            <summary>
            The unique ID for this LogEntry
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogEntry.Entered">
            <summary>
            When this error occurred.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogEntry.Message">
            <summary>
            The Actual Error Message
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogEntry.ErrorLevel">
            <summary>
            Determines the error level of the messages
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogEntry.Details">
            <summary>
            Free form text field that contains extra data to display
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogEntry.ErrorType">
            <summary>
            The type of exception that was thrown if an error occurred
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogEntry.StackTrace">
            <summary>
            StackTrace in event of an exception
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogEntry.UpdateFromException(System.Exception)">
            <summary>
            Updates the current request as an error log entry and 
            sets the ErrorType, Message and StackTrace properties
            from the content of the passed exception
            </summary>
            <param name="ex"></param>
        </member>
        <member name="F:Westwind.Utilities.Logging.ErrorLevels.Error">
            <summary>
            A critical error occurred
            </summary>          
        </member>
        <member name="F:Westwind.Utilities.Logging.ErrorLevels.Warning">
            <summary>
            A warning type message that drives attention to potential problems
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Logging.ErrorLevels.Info">
            <summary>
            Log Entry
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Logging.ErrorLevels.Debug">
            <summary>
            Debug message
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Logging.ErrorLevels.ApplicationInfo">
            <summary>
            Application level information log entries
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Logging.ErrorLevels.ApplicationError">
            <summary>
            Application Level Error entries
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Logging.ErrorLevels.None">
            <summary>
            Empty - not assigned
            </summary>        
        </member>
        <member name="F:Westwind.Utilities.Logging.ErrorLevels.All">
            <summary>
            All ErrorLevels - used only for querying
            </summary>            
        </member>
        <member name="T:Westwind.Utilities.Logging.LogManager">
            <summary>
            The LogManager provides the top level access to the log and is
            the public facing interface to the log. It uses an underlying 
            ILogProvider implementation to write to the appropriate log store.
            which includes Sql Server, Text File, Xml File or EventLog (and
            can be extended with your own providers)
            
            To use you'll need to create an instance of the LogProvider once
            can call the static Create method. From then on in you can always
            use the LogManager.Current instance to access features
            of the logging engine.
            
            To set up (Application_Start
            // Specify Sql Log with a Connection string or ConnectionString Config Entry Name
            LogManager.Create( new SqlLogAdapter("WestWindAdmin") );
            
            To access log features:
            LogEntry entry = new LogEntry();
            entry.Message = "Application started...";
            entry.ErrorLevel = 
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.Create(Westwind.Utilities.Logging.ILogAdapter)">
            <summary>
            Creates an instance of a log Manager and attaches it
            to the static Current property that is reusable throughout
            the application.
            
            This method should be called once when the application starts
            </summary>
            <param name="adapter"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.Create(Westwind.Utilities.Logging.LogAdapterTypes)">
            <summary>
            Creates an instance of the LogManager based on the
            settings configured in the web.config file
            </summary>        
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.Create">
            <summary>
            Creates a new instance of the LogManager based on the
            settings in the .config file.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogManager.Current">
            <summary>
            Static instance of the log manager. Used so you can configure
            the log manager once and easily reuse it in an application
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogManager.LogAdapter">
            <summary>
            Global instance of the LogAdapter used
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.#ctor">
            <summary>
            Don't allow no-parm 
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.#ctor(Westwind.Utilities.Logging.ILogAdapter)">
            <summary>
            Main signature allows creating of manager with an adapter
            to specify logging target
            
            Available Adapters are:
            SqlLogAdapter
            XmlLogAdapter (n/a)
            TextLogAdapter (n/a)
            EventLogAdapter (n/a)
            </summary>
            <param name="logAdapter"></param>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.WriteEntry(Westwind.Utilities.Logging.WebLogEntry)">
            <summary>
            Writes a Web specific log entry into the log
            </summary>
            <param name="entry"></param>
            <returns></returns>        
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.Log(Westwind.Utilities.Logging.WebLogEntry,System.Boolean)">
            <summary>
            Writes a Web specific log entry into the log
            </summary>
            <param name="entry"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.LogInfo(System.String,System.String,System.String,System.Boolean)">
            <summary>
            Writes an Info entry into the log
            </summary>
            <param name="message"></param>
            <param name="??"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.LogError(System.String,System.String,System.String)">
            <summary>
            Writes an Error message entry to the log
            </summary>
            <param name="message"></param>
            <param name="details"></param>
            <param name="stackTrace"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.LogError(System.Exception,System.Boolean)">
            <summary>
            Writes an error entry from an exception to the log
            </summary>
            <param name="ex"></param>
            <param name="logHttpInfo"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.LogWarning(System.String,System.String,System.String,System.Boolean)">
            <summary>
            Writes a warning message to the log
            </summary>
            <param name="message"></param>
            <param name="details"></param>
            <param name="stackTrace"></param>
            <param name="logHttpInfo"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.GetWebLogEntry(System.Int32)">
            <summary>
            Retrieves an individual log entry if possible. Depending
            on the implementation of the log log entries may not be
            retrievable individually (for example from a text log) or
            the event log.
            </summary>
            <param name="id"></param>
            <returns>Web Log Entry or null</returns>
            <exception cref="T:System.InvalidOperationException">Fired if id is not found or data can't be accessed</exception>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.CreateLog">
            <summary>
            Creates a new Log table/file/log depending on the provider.
            Check provider documentation on requirements for 'connections'
            or locations for logs.
            </summary>
            <param name="logType"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.DeleteLog">
            <summary>
            Deletes the Log completely by removing the table/file/log
            </summary>
            <param name="logType"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.Clear">
            <summary>
            Clears out all the entries in the log
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.Clear(System.Int32)">
            <summary>
            Clears the log but leaves specified number of the last entries        
            </summary>
            <param name="countToLeave"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManager.GetEntryCount(Westwind.Utilities.Logging.ErrorLevels)">
            <summary>
            Returns count of all entries for a given error level.
            </summary>
            <param name="errorLevel"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Logging.LogManagerConfiguration">
            <summary>
            Holds persisted Configuration Management settings that are 
            maintained in the .config file
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Logging.LogManagerConfiguration.#ctor">
            <summary>
            Initialize the LogManagerConfiguration by reading
            from configuration section "LogManager"
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogManagerConfiguration.Current">
            <summary>
            Static singleton instance of the configuration object that
            is always accessible
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogManagerConfiguration.ConnectionString">
            <summary>
            The 'connection string' for the LogManager. Can be a ConnectionStrings entry or a full connection string
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogManagerConfiguration.LogFilename">
            <summary>
            The name of the file or table that holds log data.
            
            For SQL this will be a tablename. For Xml this is a 
            virtual path for the xml log file (~/admin/ApplicationWebLog.xml)
            In non-web apps a full OS path should be used.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogManagerConfiguration.LogAdapter">
            <summary>
            Determines what type of log is logged to
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogManagerConfiguration.LogWebRequests">
            <summary>
            Determines whether Web Requests are logged.
            
            This property doesn't actually do anything in the log provider
            itself, but acts as a configuration setting placeholder that 
            can be used in an application to determine whether you should 
            log each request in a Web application
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.LogManagerConfiguration.LogErrors">
            <summary>
            Determines whether Errors are logged.
            
            This property doesn't actually do anything in the log provider
            itself, but acts as a configuration setting placeholder that 
            can be used in an application to determine whether you should 
            log Errors
            </summary>
        </member>
        <member name="T:Westwind.Utilities.Logging.LogAdapterTypes">
            <summary>
            Determines what type of log output is created
            </summary>
        </member>
        <member name="T:Westwind.Utilities.Logging.SqlLogAdapter">
            <summary>
            Log adapter that writes to a SQL Server Database
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.SqlLogAdapter.LogFilename">
            <summary>
            The name of the table that data in SQL Server is written to
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Logging.SqlLogAdapter.#ctor(System.String)">
            <summary>
            Must pass in a SQL Server connection string or 
            config ConnectionString Id.
            </summary>
            <param name="connectionString"></param>        
        </member>
        <member name="M:Westwind.Utilities.Logging.SqlLogAdapter.#ctor">
            <summary>
            this version configures itself from the LogManager 
            configuration section
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Logging.SqlLogAdapter.CreateDal">
            <summary>
            Internally creates and configures an instance of the DAL used for data access
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.SqlLogAdapter.WriteEntry(Westwind.Utilities.Logging.WebLogEntry)">
            <summary>
            Writes a new Web specific entry into the log file
            
            Assumes that your log file is set up to be a Web Log file
            </summary>
            <param name="webEntry"></param>
            <returns></returns>
            <exception cref="T:System.InvalidOperationException">Thrown if the insert operation fails</exception>
        </member>
        <member name="M:Westwind.Utilities.Logging.SqlLogAdapter.GetEntry(System.Int32)">
            <summary>
            Returns an individual Web log entry from the log table
            </summary>
            <param name="id"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.SqlLogAdapter.GetEntries(Westwind.Utilities.Logging.ErrorLevels,System.Int32,System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.String)">
            <summary>
            Returns entries for a given error level, and date range
            </summary>
            <param name="errorLevel"></param>
            <param name="count"></param>
            <param name="dateFrom"></param>
            <param name="dateTo"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.SqlLogAdapter.CreateLog">
            <summary>
            Creates a new log table in the current database. If the table exists already it
            is dropped and recreated.
            
            Requires database admin access.
            </summary>
            <param name="logType"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.SqlLogAdapter.DeleteLog">
            <summary>
            Deletes the Sql Log Table
            </summary>
            <param name="logType"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.SqlLogAdapter.Clear">
            <summary>
            Clears all the records of the log table
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.SqlLogAdapter.Clear(System.Int32)">
            <summary>
            Clears the table and leaves the last number of records specified intact
            </summary>
            <param name="countToLeave"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.SqlLogAdapter.GetEntryCount(Westwind.Utilities.Logging.ErrorLevels)">
            <summary>
            Returns the number of total log entries
            </summary>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Logging.WebLogEntry">
            <summary>
            A Web specific Log entry that includes information about the current Web Request
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.WebLogEntry.Url">
            <summary>
            The Url without the query string for the current request
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.WebLogEntry.QueryString">
            <summary>
            The query string of the current request
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.WebLogEntry.IpAddress">
            <summary>
            The IP Address of the client that called this URL
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.WebLogEntry.PostData">
            <summary>
            The POST data if available
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.WebLogEntry.Referrer">
            <summary>
            The Referring url
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.WebLogEntry.RequestDuration">
            <summary>
            Optional duration of the current request
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Logging.WebLogEntry.UpdateFromRequest(System.Web.HttpContext)">
            <summary>
            Updates the Web specific properties of this entry from the 
            supplied HttpContext object.
            </summary>
            <param name="context"></param>
            <returns></returns>
        </member>
        <member name="P:Westwind.Utilities.Logging.XmlLogAdapter.ConnectionString">
            <summary>
            The Xml Connection string is the filename
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Logging.XmlLogAdapter.LogFilename">
            <summary>
            The name of the file where we're logging to
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Logging.XmlLogAdapter.WriteEntry(Westwind.Utilities.Logging.WebLogEntry)">
            <summary>
            Writes an entry to the log
            </summary>
            <param name="entry"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.XmlLogAdapter.GetEntry(System.Int32)">
            <summary>
            Returns an individual entry entity
            </summary>
            <param name="id"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.XmlLogAdapter.GetEntries(Westwind.Utilities.Logging.ErrorLevels,System.Int32,System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.String)">
            <summary>
            Returns a filtered list of XML entries sorted in descending order.
            </summary>
            <param name="errorLevel">The specific error level to return</param>
            <param name="count">Max number of items to return</param>
            <param name="dateFrom">From Date</param>
            <param name="dateTo">To Date</param>
            <param name="fieldList">"*" or any of the fields you want returned - currently not supported</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.XmlLogAdapter.GetEntryList(Westwind.Utilities.Logging.ErrorLevels,System.Int32,System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.String)">
            <summary>
            Not implemented yet
            </summary>
            <param name="errorLevel"></param>
            <param name="count"></param>
            <param name="dateFrom"></param>
            <param name="dateTo"></param>
            <param name="fieldList"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.XmlLogAdapter.CreateLog">
            <summary>
            Does nothing for the XmlLogAdapter - log is created with first new entry instead
            </summary>
            <param name="logType"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.XmlLogAdapter.DeleteLog">
            <summary>
            Deletes the XML log file
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.XmlLogAdapter.Clear">
            <summary>
            Clears out all items from the XML log - in effect deletes the log file.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.XmlLogAdapter.Clear(System.Int32)">
            <summary>
            Not Implemented
            </summary>
            <param name="countToLeave"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.XmlLogAdapter.Clear(System.Decimal)">
            <summary>
            Not implemented
            </summary>
            <param name="daysToDelete"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.XmlLogAdapter.CreateEntryDataTable">
            <summary>
            Creates a DataTable on the fly
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Logging.XmlLogAdapter.UpdateDataRowFromElement(System.Xml.Linq.XElement,System.Data.DataRow)">
            <summary>
            Updates the DataRow with data from node passed in
            </summary>
            <param name="node"></param>
            <param name="row"></param>
        </member>
        <member name="T:Westwind.Utilities.Properties.Resources">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.AConnectionStringMustBePassedToTheConstructor">
            <summary>
              Looks up a localized string similar to A connection string must be passed to the constructor.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.An_error_occurred_in_your_Application">
            <summary>
              Looks up a localized string similar to An error occurred in your Application.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.ByteValueGreaterThan20megsAreNotSupported">
            <summary>
              Looks up a localized string similar to Byte[] value greater than 20megs are not supported.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.ConfigurationMethodNoLongerSupported">
            <summary>
              Looks up a localized string similar to This Configuration method is no longer supported. Use a Provider configuration instead..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.ConnectionOpeningFailure">
            <summary>
              Looks up a localized string similar to Connection opening failure: {0}.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.CouldntLoadEntityInvalidKeyProvided">
            <summary>
              Looks up a localized string similar to Couldn&apos;t load entity - invalid key provided..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.DataReaderPassedToDataReaderToObjectCannot">
            <summary>
              Looks up a localized string similar to DataReader passed to DataReaderToObject cannot be closed.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.ErrorColon">
            <summary>
              Looks up a localized string similar to Error: .
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.InvalidConnectionString">
            <summary>
              Looks up a localized string similar to Invalid Connection String..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.InvalidConnectionStringName">
            <summary>
              Looks up a localized string similar to Invalid Connection string name..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.InvalidEncryptionPropertyName">
            <summary>
              Looks up a localized string similar to Invalid encryptipon property name.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.InvalidHexDigit">
            <summary>
              Looks up a localized string similar to Invalid hex digit: .
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.InvalidHexStringLength">
            <summary>
              Looks up a localized string similar to Invalid hex string length: {0}.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.InvalidTypeForXmlTypeToNETTypeConversion">
            <summary>
              Looks up a localized string similar to Invalid type for XmlType to .NET Type conversion..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.InvalidXMLConfigurationFileFormat">
            <summary>
              Looks up a localized string similar to Invalid XML configuration file format in {0}..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.JSON_NET_library_not_avaiable">
            <summary>
              Looks up a localized string similar to JSON.NET library not avaiable. Please add the Newtonsoft.Json package to your project..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.MissingEncryptionKey">
            <summary>
              Looks up a localized string similar to Missing encryption key..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.NoActiveTransactionToCommit">
            <summary>
              Looks up a localized string similar to No active Transaction to commit..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.ObjectCouldNotBeDeserializedFromXml">
            <summary>
              Looks up a localized string similar to Object could not be deserialized from Xml..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.SqlServerCompactDataProviderNotSupportedOnNetCore">
            <summary>
              Looks up a localized string similar to The Sql Server Compact data provider is not supported on .NET Core.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.StringToTypedValueValueTypeConversionFailed">
            <summary>
              Looks up a localized string similar to Type Conversion not handled in StringToTypedValue for .
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.Today">
            <summary>
              Looks up a localized string similar to Today.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.UnableToExtractKeys">
            <summary>
              Looks up a localized string similar to Unable to read configuration string from Sql Server field..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.UnableToReadConfigDataFromString">
            <summary>
              Looks up a localized string similar to Unable to read config information from string..
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.UnableToRetrieveDbProviderFactoryForm">
            <summary>
              Looks up a localized string similar to Unable to retrieve DbProviderFactory for: {0}.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.UnsupportedProviderFactory">
            <summary>
              Looks up a localized string similar to Unsupported Provider Factory specified: {0}.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Properties.Resources.Yesterday">
            <summary>
              Looks up a localized string similar to Yesterday.
            </summary>
        </member>
        <member name="T:Westwind.Utilities.DelegateFactory">
            <summary>
            This class creates a generic method delegate from a MethodInfo signature
            converting the method call into a LateBoundMethod delegate call. Using
            this class allows making repeated calls very quickly.
            
            Note: this class will be very inefficient for individual dynamic method
            calls - compilation of the expression is very expensive up front, so using
            this delegate factory makes sense only if you re-use the dynamicly loaded
            method repeatedly.
            
            Entirely based on Nate Kohari's blog post:
            http://kohari.org/2009/03/06/fast-late-bound-invocation-with-expression-trees/
            </summary>
        </member>
        <member name="M:Westwind.Utilities.DelegateFactory.Create(System.Reflection.MethodInfo)">
            <summary>
            Creates a LateBoundMethod delegate from a MethodInfo structure
            Basically creates a dynamic delegate instance (code) on the fly.
            </summary>
            <param name="method"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DelegateFactory.Create(System.Type,System.String,System.Type[])">
            <summary>
            Creates a LateBoundMethod from type methodname and parameter signature that
            is turned into a MethodInfo structure and then parsed into a dynamic delegate
            </summary>
            <param name="type"></param>
            <param name="methodName"></param>
            <param name="parameterTypes"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.LateBoundMethod">
            <summary>
            LateBoundMethod is a generic method signature that is passed an instance
            and an array of parameters and returns an object. It basically can be 
            used to call any method.
            
            </summary>
            <param name="target">The instance that the dynamic method is called on</param>
            <param name="arguments"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Encryption">
            <summary>
            Class that provides a number of encryption utilities.
            </summary>
            <remarks>
            For best compatibility across platforms of the Encrypt/Decrypt methods use 
            overloads that use the key as a byte[24] value rather than string or other sized buffers.
            </remarks>
        </member>
        <member name="F:Westwind.Utilities.Encryption.EncryptionKey">
            <summary>
            Replace this value with some unique key of your own
            Best set this in your App start up in a Static constructor
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Encryption.EncryptionKeySize">
            <summary>
            Global configuration propery that can be overridden to
            set the key size used for Encrypt/Decript operations.
            Choose between 16 bytes (not recommended except for
            backwards compatibility) or 24 bytes (works both in
            NET Full and NET Core)
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Encryption.EncryptBytes(System.Byte[],System.String)">
            <summary>
            Encodes a stream of bytes using DES encryption with a pass key. Lowest level method that 
            handles all work.
            </summary>
            <param name="inputBytes"></param>
            <param name="encryptionKey"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.EncryptBytes(System.Byte[],System.Security.SecureString)">
            <summary>
            Encodes a stream of bytes using DES encryption with a pass key. Lowest level method that 
            handles all work.
            </summary>
            <param name="inputBytes"></param>
            <param name="encryptionKey"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.EncryptBytes(System.Byte[],System.Byte[],System.Security.Cryptography.CipherMode)">
            <summary>
            Encrypts a byte buffer with a byte encryption key.
            </summary>
            <param name="inputBytes">Bytes to convert</param>
            <param name="encryptionKey">The key bytes used to encode the data. Use a 24 byte key for best compatibility</param>
            <param name="cipherMode">Optional CipherMode used. Defaults to older ECB for backwards compatibility</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.EncryptBytes(System.String,System.String)">
            <summary>
            Encrypts a string into bytes using DES encryption with a Passkey. 
            </summary>
            <param name="inputString"></param>
            <param name="encryptionKey"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.EncryptString(System.String,System.Byte[],System.Boolean)">
            <summary>
            Encrypts a string using Triple DES encryption with a two way encryption key.String is returned as Base64 or BinHex
            encoded value rather than binary.
            </summary>
            <param name="inputString"></param>
            <param name="encryptionKey"></param>
            <param name="useBinHex">if true returns bin hex rather than base64</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.EncryptString(System.String,System.String,System.Boolean)">
            <summary>
            Encrypts a string using Triple DES encryption with a two way encryption key.
            String is returned as Base64 or BinHex encoded string.
            </summary>
            <param name="inputString"></param>
            <param name="encryptionKey"></param>
            <param name="useBinHex"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.EncryptString(System.String,System.Security.SecureString,System.Boolean)">
            <summary>
            Encrypts a string using Triple DES encryption with a two way encryption key.
            String is returned as Base64 or BinHex encoded string.
            </summary>
            <param name="inputString"></param>
            <param name="encryptionKey"></param>
            <param name="useBinHex"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.DecryptBytes(System.Byte[],System.String)">
            <summary>
            Decrypts a Byte array from DES with an Encryption Key.
            </summary>
            <param name="decryptBuffer"></param>
            <param name="encryptionKey"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.DecryptBytes(System.Byte[],System.Security.SecureString)">
            <summary>
            Decrypts a Byte array from DES with an Encryption Key.
            </summary>
            <param name="decryptBuffer"></param>
            <param name="encryptionKey"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.DecryptBytes(System.Byte[],System.Byte[],System.Security.Cryptography.CipherMode)">
            <summary>
            Decrypts a byte buffer with a byte based encryption key
            </summary>
            <param name="decryptBuffer">Data to encrypt</param>
            <param name="encryptionKey">The key bytes used to encode the data. Use a 24 byte key for best compatibility</param>
            <param name="cipherMode">Optional CipherMode used. Defaults to older ECB for backwards compatibility</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.DecryptBytes(System.String,System.String,System.Boolean)">
            <summary>
            Decrypts a string using DES encryption and a pass key that was used for 
            encryption and returns a byte buffer.    
            </summary>
            <param name="decryptString"></param>
            <param name="encryptionKey"></param>
            <param name="useBinHex">Returns data in useBinHex format (12afb1c3f1). Otherwise base64 is returned.</param>
            <returns>String</returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.DecryptBytes(System.String,System.Security.SecureString,System.Boolean)">
            <summary>
            Decrypts a string using DES encryption and a pass key that was used for 
            encryption and returns a byte buffer.    
            </summary>
            <param name="decryptString"></param>
            <param name="encryptionKey"></param>
            <param name="useBinHex">Returns data in useBinHex format (12afb1c3f1). Otherwise base64 is returned.</param>
            <returns>String</returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.DecryptString(System.String,System.String,System.Boolean)">
            <summary>
            Decrypts a string using DES encryption and a pass key that was used for 
            encryption.
            <seealso>Class wwEncrypt</seealso>
            </summary>
            <param name="decryptString"></param>
            <param name="encryptionKey"></param>
            <param name="useBinHex">Returns data in useBinHex format (12afb1c3f1). Otherwise base64 is returned.</param>
            <returns>String</returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.DecryptString(System.String,System.Security.SecureString,System.Boolean)">
            <summary>
            Decrypts a string using DES encryption and a pass key that was used for 
            encryption.
            <seealso>Class wwEncrypt</seealso>
            </summary>
            <param name="decryptString"></param>
            <param name="encryptionKey"></param>
            <param name="useBinHex">Returns data in useBinHex format (12afb1c3f1). Otherwise base64 is returned.</param>
            <returns>String</returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.DecryptString(System.String,System.Byte[],System.Boolean)">
            <summary>
            Decrypts a string using DES encryption and a pass key that was used for 
            encryption.
            <seealso>Class wwEncrypt</seealso>
            </summary>
            <param name="decryptString"></param>
            <param name="encryptionKey"></param>
            <param name="useBinHex">Returns data in useBinHex format (12afb1c3f1). Otherwise base64 is returned</param>
            <returns>String</returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.ProtectBytes(System.Byte[],System.Byte[],System.Security.Cryptography.DataProtectionScope)">
            <summary>
            Encrypt bytes using the Data Protection API on Windows. This API
            uses internal keys to encrypt data which is valid for decryption only
            on the same machine.        
            
            This is an idea storage mechanism for application registraions, 
            service passwords and other semi-transient data that is specific
            to the software used on the current machine
            </summary>
            <remarks>
            DO NOT USE FOR DATA THAT WILL CROSS MACHINE BOUNDARIES
            </remarks>
            <param name="encryptBytes"></param>
            <param name="key"></param>
            <param name="scope"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.ProtectBytes(System.Byte[],System.String,System.Security.Cryptography.DataProtectionScope)">
            <summary>
            Encrypt bytes using the Data Protection API on Windows. This API
            uses internal keys to encrypt data which is valid for decryption only
            on the same machine.        
            
            This is an idea storage mechanism for application registraions, 
            service passwords and other semi-transient data that is specific
            to the software used on the current machine
            </summary>
            <remarks>
            DO NOT USE FOR DATA THAT WILL CROSS MACHINE BOUNDARIES
            </remarks>
            <param name="encryptBytes"></param>
            <param name="key"></param>     
            <param name="scope"></param>   
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.ProtectString(System.String,System.String,System.Security.Cryptography.DataProtectionScope,System.Boolean)">
            <summary>
            Encrypt bytes using the Data Protection API on Windows. This API
            uses internal keys to encrypt data which is valid for decryption only
            on the same machine.        
            
            This is an idea storage mechanism for application registraions, 
            service passwords and other semi-transient data that is specific
            to the software used on the current machine
            </summary>
            <remarks>
            DO NOT USE FOR DATA THAT WILL CROSS MACHINE BOUNDARIES
            </remarks>
            <param name="encryptString"></param>
            <param name="key"></param>     
            <param name="scope"></param>
            <param name="useBinHex">returns bin hex data when set (010A0D10AF)</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.ProtectString(System.String,System.Byte[],System.Security.Cryptography.DataProtectionScope,System.Boolean)">
            <summary>
            Encrypt bytes using the Data Protection API on Windows. This API
            uses internal keys to encrypt data which is valid for decryption only
            on the same machine.        
            
            This is an idea storage mechanism for application registraions, 
            service passwords and other semi-transient data that is specific
            to the software used on the current machine
            </summary>
            <remarks>
            DO NOT USE FOR DATA THAT WILL CROSS MACHINE BOUNDARIES
            </remarks>
            <param name="encryptString"></param>
            <param name="key"></param>     
            <param name="scope"></param>
            <param name="useBinHex">returns bin hex data when set (010A0D10AF)</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.UnprotectBytes(System.Byte[],System.Byte[],System.Security.Cryptography.DataProtectionScope)">
            <summary>
            Decrypts bytes using the Data Protection API on Windows. This API
            uses internal keys to encrypt data which is valid for decryption only
            on the same machine.        
            
            This is an idea storage mechanism for application registraions, 
            service passwords and other semi-transient data that is specific
            to the software used on the current machine
            </summary>
            <remarks>
            DO NOT USE FOR DATA THAT WILL CROSS MACHINE BOUNDARIES
            </remarks>
            <param name="encryptBytes"></param>
            <param name="key"></param>
            <param name="scope"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.UnprotectBytes(System.Byte[],System.String,System.Security.Cryptography.DataProtectionScope)">
            <summary>
            Encrypt bytes using the Data Protection API on Windows. This API
            uses internal keys to encrypt data which is valid for decryption only
            on the same machine.        
            
            This is an idea storage mechanism for application registraions, 
            service passwords and other semi-transient data that is specific
            to the software used on the current machine
            </summary>
            <remarks>
            DO NOT USE FOR DATA THAT WILL CROSS MACHINE BOUNDARIES
            </remarks>
            <param name="encryptBytes"></param>
            <param name="key"></param>     
            <param name="scope"></param>   
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.UnprotectString(System.String,System.String,System.Security.Cryptography.DataProtectionScope,System.Boolean)">
            <summary>
            Encrypt bytes using the Data Protection API on Windows. This API
            uses internal keys to encrypt data which is valid for decryption only
            on the same machine.        
            
            This is an idea storage mechanism for application registraions, 
            service passwords and other semi-transient data that is specific
            to the software used on the current machine
            </summary>
            <remarks>
            DO NOT USE FOR DATA THAT WILL CROSS MACHINE BOUNDARIES
            </remarks>
            <param name="encryptString"></param>
            <param name="key"></param>     
            <param name="scope"></param>
            <param name="useBinHex">returns bin hex data when set (010A0D10AF)</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.UnprotectString(System.String,System.Byte[],System.Security.Cryptography.DataProtectionScope,System.Boolean)">
            <summary>
            Encrypt bytes using the Data Protection API on Windows. This API
            uses internal keys to encrypt data which is valid for decryption only
            on the same machine.        
            
            This is an idea storage mechanism for application registraions, 
            service passwords and other semi-transient data that is specific
            to the software used on the current machine
            </summary>
            <remarks>
            DO NOT USE FOR DATA THAT WILL CROSS MACHINE BOUNDARIES
            </remarks>
            <param name="encryptString"></param>
            <param name="key"></param>     
            <param name="scope"></param>
            <param name="useBinHex">returns bin hex data when set (010A0D10AF)</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.ComputeHash(System.String,System.String,System.Byte[],System.Boolean)">
            <summary>
            Generates a hash for the given plain text value and returns a
            base64-encoded result. Before the hash is computed, a random salt
            is generated and appended to the plain text. This salt is stored at
            the end of the hash value, so it can be used later for hash
            verification.
            </summary>
            <param name="plainText">
            Plaintext value to be hashed. 
            </param>
            <param name="hashAlgorithm">
            Name of the hash algorithm. Allowed values are: "MD5", "SHA1",
            "SHA256", "SHA384", "SHA512", "HMACMD5", "HMACSHA1", "HMACSHA256",
             "HMACSHA512" (if any other value is specified  MD5 will be used). 
            
            HMAC algorithms uses Hash-based Message Authentication Code.
            The HMAC process mixes a secret key with the message data, hashes 
            the result with the hash function, mixes that hash value with 
            the secret key again, and then applies the hash function
            a second time. HMAC hashes are fixed lenght and generally
            much longer than non-HMAC hashes of the same type.
            
            https://msdn.microsoft.com/en-us/library/system.security.cryptography.hmacsha256(v=vs.110).aspx      
            
            This value is case-insensitive.
            </param>
            <param name="salt">
            Optional but recommended salt string to apply to the hash. If not passed the
            raw encoding is used. If salt is nullthe raw algorithm is used (useful for 
            file hashes etc.) HMAC versions REQUIRE that salt is passed.
            </param>
            <param name="useBinHex">if true returns the data as BinHex byte pair string. Otherwise Base64 is returned.</param>
            <returns>
            Hash value formatted as a base64-encoded or BinHex stringstring.
            </returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.ComputeHash(System.String,System.String,System.String,System.Boolean)">
            <summary>
            Generates a hash for the given plain text value and returns a
            base64-encoded result. Before the hash is computed, a random salt
            is generated and appended to the plain text. This salt is stored at
            the end of the hash value, so it can be used later for hash
            verification.
            </summary>
            <param name="plainText">
            Plaintext value to be hashed. 
            </param>
            <param name="hashAlgorithm">
            Name of the hash algorithm. Allowed values are: "MD5", "SHA1",
            "SHA256", "SHA384", "SHA512", "HMACMD5", "HMACSHA1", "HMACSHA256",
             "HMACSHA512" (if any other value is specified  MD5 will be used). 
            
            HMAC algorithms uses Hash-based Message Authentication Code.
            The HMAC process mixes a secret key with the message data, hashes 
            the result with the hash function, mixes that hash value with 
            the secret key again, and then applies the hash function
            a second time. HMAC hashes are fixed lenght and generally
            much longer than non-HMAC hashes of the same type.
            
            https://msdn.microsoft.com/en-us/library/system.security.cryptography.hmacsha256(v=vs.110).aspx      
            
            This value is case-insensitive.
            </param>
            <param name="salt">
            Optional but recommended salt string to apply to the hash. If not passed the
            raw encoding is used. If salt is nullthe raw algorithm is used (useful for 
            file hashes etc.) HMAC versions REQUIRE that salt is passed.
            </param>
            <param name="useBinHex">if true returns the data as BinHex byte pair string. Otherwise Base64 is returned.</param>
            <returns>
            Hash value formatted as a base64-encoded or BinHex stringstring.
            </returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.ComputeHash(System.Byte[],System.String,System.Byte[],System.Boolean)">
            <summary>
            Generates a hash for the given plain text value and returns a
            base64-encoded result. Before the hash is computed, a random salt
            is generated and appended to the plain text. This salt is stored at
            the end of the hash value, so it can be used later for hash
            verification.
            </summary>
            <param name="byteData">
            Plaintext value to be hashed. 
            </param>
            <param name="hashAlgorithm">
            Name of the hash algorithm. Allowed values are: "MD5", "SHA1",
            "SHA256", "SHA384", "SHA512", "HMACMD5", "HMACSHA1", "HMACSHA256",
             "HMACSHA512" (if any other value is specified  MD5 will be used). 
            
            HMAC algorithms uses Hash-based Message Authentication Code.
            The HMAC process mixes a secret key with the message data, hashes 
            the result with the hash function, mixes that hash value with 
            the secret key again, and then applies the hash function
            a second time. HMAC hashes are fixed lenght and generally
            much longer than non-HMAC hashes of the same type.
            
            https://msdn.microsoft.com/en-us/library/system.security.cryptography.hmacsha256(v=vs.110).aspx      
            
            This value is case-insensitive.
            </param>
            <param name="saltBytes">
            Optional but recommended salt bytes to apply to the hash. If not passed the
            raw encoding is used. If salt is nullthe raw algorithm is used (useful for 
            file hashes etc.) HMAC versions REQUIRE that salt is passed.
            </param>
            <param name="useBinHex">if true returns the data as BinHex byte pair string. Otherwise Base64 is returned.</param>
            <returns>
            Hash value formatted as a base64-encoded or BinHex stringstring.
            </returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.GZipMemory(System.Byte[])">
            <summary>
            GZip encodes a memory buffer to a compressed memory buffer
            </summary>
            <param name="buffer"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.GZipMemory(System.String)">
            <summary>
            Encodes a string to a gzip compressed memory buffer
            </summary>
            <param name="Input"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.GZipMemory(System.String,System.Boolean)">
            <summary>
            Encodes a file to a gzip memory buffer
            </summary>
            <param name="Filename"></param>
            <param name="IsFile"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.GZipFile(System.String,System.String)">
            <summary>
            Encodes one file to another file that is gzip compressed.
            File is overwritten if it exists and not locked.
            </summary>
            <param name="Filename"></param>
            <param name="OutputFile"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.GetChecksumFromFile(System.String,System.String)">
            <summary>
            Creates an SHA256 or MD5 checksum of a file
            </summary>
            <param name="file"></param>
            <param name="mode">SHA256,SHA512,MD5</param>
            <returns>A binhex string</returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.GetChecksumFromBytes(System.Byte[],System.String)">
            <summary>
            Create a SHA256 or MD5 checksum from a bunch of bytes
            </summary>
            <param name="fileData"></param>
            <param name="mode">SHA256,SHA512,MD5</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.BinaryToBinHex(System.Byte[])">
            <summary>
            Converts a byte array into a BinHex string.
            Example: 01552233 
            where the numbers are packed
            byte values.
            </summary>
            <param name="data">Raw data to send</param>
            <returns>string or null if input is null</returns>
        </member>
        <member name="M:Westwind.Utilities.Encryption.BinHexToBinary(System.String)">
            <summary>
            Turns a BinHex string that contains raw byte values
            into a byte array
            </summary>
            <param name="hex">BinHex string (011a031f) just two byte hex digits strung together)</param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Expando">
            <summary>
            Class that provides extensible properties and methods to an
            existing object when cast to dynamic. This
            dynamic object stores 'extra' properties in a dictionary or
            checks the actual properties of the instance passed via 
            constructor.
            
            This class can be subclassed to extend an existing type or 
            you can pass in an instance to extend. Properties (both
            dynamic and strongly typed) can be accessed through an 
            indexer.
            
            This type allows you three ways to access its properties:
            
            Directly: any explicitly declared properties are accessible
            Dynamic: dynamic cast allows access to dictionary and native properties/methods
            Dictionary: Any of the extended properties are accessible via IDictionary interface
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Expando.Instance">
            <summary>
            Instance of object passed in
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Expando.InstanceType">
            <summary>
            Cached type of the instance
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Expando.Properties">
            <summary>
            String Dictionary that contains the extra dynamic values
            stored on this object/instance
            </summary>        
            <remarks>Using PropertyBag to support XML Serialization of the dictionary</remarks>
        </member>
        <member name="M:Westwind.Utilities.Expando.#ctor">
            <summary>
            This constructor just works off the internal dictionary and any 
            public properties of this object.
            
            Note you can subclass Expando.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Expando.#ctor(System.Object)">
            <summary>
            Allows passing in an existing instance variable to 'extend'.        
            </summary>
            <remarks>
            You can pass in null here if you don't want to 
            check native properties and only check the Dictionary!
            </remarks>
            <param name="instance"></param>
        </member>
        <member name="M:Westwind.Utilities.Expando.#ctor(System.Collections.Generic.IDictionary{System.String,System.Object})">
            <summary>
            Create an Expando from a dictionary
            </summary>
            <param name="dict"></param>
            <param name="expando">Expando instance</param>
        </member>
        <member name="M:Westwind.Utilities.Expando.GetDynamicMemberNames">
            <summary>
            Return both instance and dynamic names.
            
            Important to return both so JSON serialization with 
            Json.NET works.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Expando.TryGetMember(System.Dynamic.GetMemberBinder,System.Object@)">
            <summary>
            Try to retrieve a member by name first from instance properties
            followed by the collection entries.
            </summary>
            <param name="binder"></param>
            <param name="result"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Expando.TrySetMember(System.Dynamic.SetMemberBinder,System.Object)">
            <summary>
            Property setter implementation tries to retrieve value from instance 
            first then into this object
            </summary>
            <param name="binder"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Expando.TryInvokeMember(System.Dynamic.InvokeMemberBinder,System.Object[],System.Object@)">
            <summary>
            Dynamic invocation method. Currently allows only for Reflection based
            operation (no ability to add methods dynamically).
            </summary>
            <param name="binder"></param>
            <param name="args"></param>
            <param name="result"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Expando.GetProperty(System.Object,System.String,System.Object@)">
            <summary>
            Reflection Helper method to retrieve a property
            </summary>
            <param name="instance"></param>
            <param name="name"></param>
            <param name="result"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Expando.SetProperty(System.Object,System.String,System.Object)">
            <summary>
            Reflection helper method to set a property value
            </summary>
            <param name="instance"></param>
            <param name="name"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Expando.InvokeMethod(System.Object,System.String,System.Object[],System.Object@)">
            <summary>
            Reflection helper method to invoke a method
            </summary>
            <param name="instance"></param>
            <param name="name"></param>
            <param name="args"></param>
            <param name="result"></param>
            <returns></returns>
        </member>
        <member name="P:Westwind.Utilities.Expando.Item(System.String)">
            <summary>
            Convenience method that provides a string Indexer 
            to the Properties collection AND the strongly typed
            properties of the object by name.
            
            // dynamic
            exp["Address"] = "112 nowhere lane"; 
            // strong
            var name = exp["StronglyTypedProperty"] as string; 
            </summary>
            <remarks>
            The getter checks the Properties dictionary first
            then looks in PropertyInfo for properties.
            The setter checks the instance properties before
            checking the Properties dictionary.
            </remarks>
            <param name="key"></param>
            
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Expando.GetProperties(System.Boolean)">
            <summary>
            Returns and the properties of 
            </summary>
            <param name="includeProperties"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Expando.Contains(System.Collections.Generic.KeyValuePair{System.String,System.Object},System.Boolean)">
            <summary>
            Checks whether a property exists in the Property collection
            or as a property on the instance
            </summary>
            <param name="item"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.ObjectFactory`1">
            <summary>
            An object factory that can create instances of types
            for Http Web Request and Thread Scoped object objects
            and value types.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="F:Westwind.Utilities.ObjectFactory`1._syncLock">
            <summary>
            Internal locking for collection storage
            </summary>
        </member>
        <member name="M:Westwind.Utilities.ObjectFactory`1.CreateObject(System.Object[])">
            <summary>
            Returns a standard instance of an object.
            </summary>
            <param name="args"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ObjectFactory`1.CreateWebRequestScopedObject(System.Object[])">
            <summary>
            Creates an instance of an object that is scoped to the
            current Http Web Request. The instance
            is cached in HttpContext.Current.Items collection and effectively
            acts as a request Singleton.
            </summary>
            <param name="args"></param>        
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ObjectFactory`1.CreateThreadScopedObject(System.Object[])">
            <summary>
            Create an instance scoped to a current thread.
            </summary>
            <param name="key">Optional reusable key of the TLS item created</param>
            <param name="args"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ObjectFactory`1.CreateWebRequestOrThreadScopedObject(System.Object[])">
            <summary>
            Creates either Web Request scoped object instance or value
            </summary>
            <param name="args"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ObjectFactory`1.GetUniqueObjectKey(System.Object[])">
            <summary>
            Returns a unique ID for a given type and parameter signature
            </summary>        
            <param name="args"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.PropertyBag">
            <summary>
            Creates a serializable string/object dictionary that is XML serializable
            Encodes keys as element names and values as simple values with a type
            attribute that contains an XML type name. Complex names encode the type 
            name with type='___namespace.classname' format followed by a standard xml
            serialized format. The latter serialization can be slow so it's not recommended
            to pass complex types if performance is critical.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.PropertyBag.CreateFromXml(System.String)">
            <summary>
            Creates an instance of a propertybag from an Xml string
            </summary>
            <param name="xml">Serialize</param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.PropertyBag`1">
            <summary>
            Creates a serializable string for generic types that is XML serializable.
            
            Encodes keys as element names and values as simple values with a type
            attribute that contains an XML type name. Complex names encode the type 
            name with type='___namespace.classname' format followed by a standard xml
            serialized format. The latter serialization can be slow so it's not recommended
            to pass complex types if performance is critical.
            </summary>
            <typeparam name="TValue">Must be a reference type. For value types use type object</typeparam>
        </member>
        <member name="M:Westwind.Utilities.PropertyBag`1.GetSchema">
            <summary>
            Not implemented - this means no schema information is passed
            so this won't work with ASMX/WCF services.
            </summary>
            <returns></returns>       
        </member>
        <member name="M:Westwind.Utilities.PropertyBag`1.WriteXml(System.Xml.XmlWriter)">
            <summary>
            Serializes the dictionary to XML. Keys are 
            serialized to element names and values as 
            element values. An xml type attribute is embedded
            for each serialized element - a .NET type
            element is embedded for each complex type and
            prefixed with three underscores.
            </summary>
            <param name="writer"></param>
        </member>
        <member name="M:Westwind.Utilities.PropertyBag`1.ReadXml(System.Xml.XmlReader)">
            <summary>
            Reads the custom serialized format
            </summary>
            <param name="reader"></param>
        </member>
        <member name="M:Westwind.Utilities.PropertyBag`1.ToXml">
            <summary>
            Serializes this dictionary to an XML string
            </summary>
            <returns>XML String or Null if it fails</returns>
        </member>
        <member name="M:Westwind.Utilities.PropertyBag`1.FromXml(System.String)">
            <summary>
            Deserializes from an XML string
            </summary>
            <param name="xml"></param>
            <returns>true or false</returns>
        </member>
        <member name="M:Westwind.Utilities.PropertyBag`1.CreateFromXml(System.String)">
            <summary>
            Creates an instance of a propertybag from an Xml string
            </summary>
            <param name="xml"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.Scheduler">
            <summary>
            A generic scheduling service that runs on a background
            thread and fires events in a given check frequency.
            
            
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Scheduler.Cancelled">
            <summary>
            Determines the status  the Scheduler
            </summary>        
        </member>
        <member name="P:Westwind.Utilities.Scheduler.CheckFrequency">
            <summary>
            The frequency in how often the main method is executed.
            Given in milli-seconds.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Scheduler.WebServerPingUrl">
            <summary>
            Optional URL that is pinged occasionally to
            ensure the server stays alive.
            
            If empty hits root web page (~/yourapp/)
            </summary>
        </member>
        <member name="E:Westwind.Utilities.Scheduler.ExecuteScheduledEvent">
            <summary>
            Event that is fired when
            </summary>
        </member>
        <member name="F:Westwind.Utilities.Scheduler._SyncLock">
            <summary>
             Internal property used for cross thread locking
            </summary>
        </member>
        <member name="P:Westwind.Utilities.Scheduler.Items">
            <summary>
            Memory based queue that contains items and allows
            retrieval of items.
            
            Note memory based! This means if app crashses
            or is shut down messages might get lost.
            
            If message persistence is important your scheduling store
            should be a database. You can use the QueueMessageManager
            object for example.
            </summary>    
        </member>
        <member name="M:Westwind.Utilities.Scheduler.Start(System.Int32)">
            <summary>
            Starts the background thread processing       
            </summary>
            <param name="CheckFrequency">Frequency that checks are performed in seconds</param>
        </member>
        <member name="M:Westwind.Utilities.Scheduler.Start">
            <summary>
            Starts the background Thread processing
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Scheduler.Stop">
            <summary>
            Causes the processing to stop. If the operation is still
            active it will stop after the current message processing
            completes
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Scheduler.Run">
            <summary>
            Runs the actual processing loop by checking the mail box
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Scheduler.OnExecuteScheduledEvent">
            <summary>
            Handles a scheduled operation. Checks to see if an event handler
            is set up and if so calls it. 
            
            This method can also be overrriden in a subclass to implemnent
            custom functionality.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Scheduler.OnError(System.Exception)">
            <summary>
            This method is called if an error occurs during processing
            of the OnExecuteScheduledEvent request
            
            Override this method in your own implementation to provide
            for error logging or other handling of an error that occurred
            in processing.
            
            Ideally this shouldn't be necessary - your OnexecuteScheduledEvent
            code should handle any errors internally and provide for its own 
            logging mechanism but this is here as an additional point of
            control.
            </summary>
            <param name="ex">Exception occurred during item execution</param>
        </member>
        <member name="M:Westwind.Utilities.Scheduler.AddItem(System.Object)">
            <summary>
            Adds an item to the queue.
            </summary>
            <param name="item"></param>
        </member>
        <member name="M:Westwind.Utilities.Scheduler.GetNextItem">
            <summary>
            Returns the next queued item or null on failure.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Scheduler.PingServer(System.String)">
            <summary>
            Optional routine that pings a Url on the server
            to keep the server alive. 
            
            Use this to avoid IIS shutting down your AppPools
            </summary>
        </member>
        <member name="T:Westwind.Utilities.SchedulerItem">
            <summary>
            A simple item wrapper that allows separating items
            by type.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.SchedulerItem.Type">
            <summary>
            Allows identifying items by type
            </summary>
        </member>
        <member name="P:Westwind.Utilities.SchedulerItem.TextData">
            <summary>
            Any text data you want to submit
            </summary>
        </member>
        <member name="P:Westwind.Utilities.SchedulerItem.Data">
            <summary>
            Any binary data you want to submit
            </summary>
        </member>
        <member name="P:Westwind.Utilities.SchedulerItem.Entered">
            <summary>
            The initial date when the item was
            created or submitted.
            </summary>
        </member>
        <member name="T:Westwind.Utilities.StringSerializer">
            <summary>
            A very simple flat object serializer that can be used 
            for intra application serialization. It creates a very compact
            positional string of properties.
            Only serializes top level properties, with no nesting support
            and only simple properties or those with a type converter are
            supported. Complex properties or non-two way type convertered
            values are ignored.
            
            Creates strings in the format of:
            Rick|rstrahl@west-wind.com|1|True|3/29/2013 1:32:31 PM|1
            </summary>
            <remarks>
            This component is meant for intra application serialization of
            very compact objects. A common use case is for state serialization
            for cookies or a Forms Authentication ticket to minimize the amount
            of space used - the output produced here contains only the actual
            data, no property info or validation like other serialization formats.
            Use only on small objects when size and speed matter otherwise use
            a JSON/XML/Binary serializer or the ASP.NET LosFormatter object.
            </remarks>
        </member>
        <member name="M:Westwind.Utilities.StringSerializer.SerializeObject(System.Object,System.String)">
            <summary>
            Serializes a flat object's properties into a String
            separated by a separator character/string. Only
            top level properties are serialized.
            </summary>
            <remarks>
            Only serializes top level properties, with no nesting support
            and only simple properties or those with a type converter are
            'serialized'. All other property types use ToString().
            </remarks>
            <param name="objectToSerialize">The object to serialize</param>
            <param name="separator">Optional separator character or string. Default is |</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringSerializer.DeserializeObject(System.String,System.Type,System.String)">
            <summary>
            Deserializes an object previously serialized by SerializeObject.
            </summary>
            <param name="serialized"></param>
            <param name="type"></param>
            <param name="separator"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringSerializer.Deserialize``1(System.String,System.String)">
            <summary>
            Deserializes an object serialized with SerializeObject.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="serialized"></param>
            <param name="separator"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.UrlEncodingParser">
            <summary>
            A query string or UrlEncoded form parser and editor 
            class that allows reading and writing of urlencoded
            key value pairs used for query string and HTTP 
            form data.
            
            Useful for parsing and editing querystrings inside
            of non-Web code that doesn't have easy access to
            the HttpUtility class.                
            </summary>
            <remarks>
            Supports multiple values per key
            </remarks>
        </member>
        <member name="P:Westwind.Utilities.UrlEncodingParser.Url">
            <summary>
            Holds the original Url that was assigned if any
            Url must contain // to be considered a url
            </summary>
        </member>
        <member name="P:Westwind.Utilities.UrlEncodingParser.DecodePlusSignsAsSpaces">
            <summary>
            Determines whether plus signs in the UrlEncoded content
            are treated as spaces.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.UrlEncodingParser.#ctor(System.String,System.Boolean)">
            <summary>
            Always pass in a UrlEncoded data or a URL to parse from
            unless you are creating a new one from scratch.
            </summary>
            <param name="queryStringOrUrl">
            Pass a query string or raw Form data, or a full URL.
            If a URL is parsed the part prior to the ? is stripped
            but saved. Then when you write the original URL is 
            re-written with the new query string.
            </param>
        </member>
        <member name="M:Westwind.Utilities.UrlEncodingParser.SetValues(System.String,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Assigns multiple values to the same key
            </summary>
            <param name="key"></param>
            <param name="values"></param>
        </member>
        <member name="M:Westwind.Utilities.UrlEncodingParser.Parse(System.String)">
            <summary>
            Parses the query string into the internal dictionary
            and optionally also returns this dictionary
            </summary>
            <param name="query">
            Query string key value pairs or a full URL. If URL is
            passed the URL is re-written in Write operation
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.UrlEncodingParser.ToString">
            <summary>
            Writes out the urlencoded data/query string or full URL based 
            on the internally set values.
            </summary>
            <returns>urlencoded data or url</returns>
        </member>
        <member name="T:Westwind.Utilities.UrlParser">
            <summary>
            Internally used class that is used to expand links in text
            strings.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.UrlParser.ExpandUrls(System.String,System.String,System.Boolean)">
            <summary>
            Expands links into HTML hyperlinks inside of text or HTML.
            </summary>
            <param name="text">The text to expand</param>
            <param name="target">Target frame where links are displayed</param>
            <param name="parseFormattedLinks">Allows parsing of links in the following format [text|www.site.com]</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.UrlParser.ExpandUrlsInternal(System.String)">
            <summary>
            Expands links into HTML hyperlinks inside of text or HTML.
            </summary>
            <param name="text">The text to expand</param>    
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.UrlParser.ExpandUrlsRegExEvaluator(System.Text.RegularExpressions.Match)">
            <summary>
            Internal RegExEvaluator callback
            </summary>
            <param name="M"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.DataUtils">
            <summary>
            Utility library for common data operations.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.GenerateUniqueId(System.Int32,System.String)">
            <summary>
            Generates a unique Id as a string of up to 16 characters.
            Based on a GUID and the size takes that subset of a the
            Guid's 16 bytes to create a string id.
            
            String Id contains numbers and lower case alpha chars 36 total.
            
            Sizes: 6 gives roughly 99.97% uniqueness. 
                   8 gives less than 1 in a million doubles.
                   16 will give near full GUID strength uniqueness
            </summary>
            <param name="stringSize">Number of characters to generate between 8 and 16</param>
            <param name="additionalCharacters">Any additional characters you allow in the string. 
            You can add upper case letters and symbols which are not included in the default
            which includes only digits and lower case letters.
            </param>
            <returns></returns>        
        </member>
        <member name="M:Westwind.Utilities.DataUtils.GenerateUniqueNumericId">
            <summary>
             Generates a unique numeric ID. Generated off a GUID and
             returned as a 64 bit long value
             </summary>
             <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.GetRandomNumber(System.Int32,System.Int32)">
            <summary>
            Returns a random integer in a range of numbers
            a single seed value.
            </summary>
            <param name="min">The minimum value</param>
            <param name="max">The max value *including* this value (unlike Random.Next() which doesn't include it)</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.IndexOfByteArray(System.Byte[],System.Byte[])">
            <summary>
            Returns an index into a byte array to find sequence of
            of bytes.
            Note: You can use Span.IndexOf() where available instead.		
            </summary>
            <param name="buffer">byte array to be searched</param>
            <param name="bufferToFind">bytes to find</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.IndexOfByteArray(System.Byte[],System.String,System.Text.Encoding)">
            <summary>
            Returns an index into a byte array to find a string in the byte array.
            Exact match using the encoding provided or UTF-8 by default.
            </summary>
            <param name="buffer">Source buffer to look for string</param>
            <param name="stringToFind">string to search for (case sensitive)</param>
            <param name="encoding">Optional encoding to use - defaults to UTF-8 if null</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.CopyDataRow(System.Data.DataRow,System.Data.DataRow)">
            <summary>
            Copies the content of a data row to another. Runs through the target's fields
            and looks for fields of the same name in the source row. Structure must mathc
            or fields are skipped.
            </summary>
            <param name="source"></param>
            <param name="target"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.CopyObjectFromDataRow(System.Data.DataRow,System.Object,System.Reflection.MemberInfo[])">
            <summary>
            Populates an object passed in from values in
            a data row that's passed in.
            </summary>
            <param name="row">Data row with values to fill from</param>
            <param name="targetObject">Object to file values from data row</param>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.CopyObjectToDataRow(System.Data.DataRow,System.Object)">
            <summary>
            Copies the content of an object to a DataRow with matching field names.
            Both properties and fields are copied. If a field copy fails due to a
            type mismatch copying continues but the method returns false
            </summary>
            <param name="row"></param>
            <param name="target"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.DataTableToTypedList``1(System.Data.DataTable)">
            <summary>
            Coverts a DataTable to a typed list of items
            </summary>
            <typeparam name="T">Type to </typeparam>
            <param name="dsTable"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.CopyObjectData(System.Object,System.Object)">
            <summary>
            Copies the content of one object to another. The target object 'pulls' properties of the first. 
            </summary>
            <param name="source"></param>
            <param name="target"></param>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.CopyObjectData(System.Object,System.Object,System.Reflection.BindingFlags)">
            <summary>
            Copies the content of one object to another. The target object 'pulls' properties of the first. 
            </summary>
            <param name="source"></param>
            <param name="target"></param>
            <param name="memberAccess"></param>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.CopyObjectData(System.Object,System.Object,System.String)">
            <summary>
            Copies the content of one object to another. The target object 'pulls' properties of the first. 
            </summary>
            <param name="source"></param>
            <param name="target"></param>
            <param name="excludedProperties"></param>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.CopyObjectData(System.Object,System.Object,System.String,System.Reflection.BindingFlags)">
            <summary>
            Copies the data of one object to another. The target object 'pulls' properties of the first. 
            This any matching properties are written to the target.
            
            The object copy is a shallow copy only. Any nested types will be copied as 
            whole values rather than individual property assignments (ie. via assignment)
            </summary>
            <param name="source">The source object to copy from</param>
            <param name="target">The object to copy to</param>
            <param name="excludedProperties">A comma delimited list of properties that should not be copied</param>
            <param name="memberAccess">Reflection binding access</param>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.DataTableToObjectList``1(System.Data.DataTable)">
            <summary>
            Coverts a DataTable to a typed list of items
            </summary>
            <typeparam name="T"></typeparam>
            <param name="dsTable"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.DataReaderToObjectList``1(System.Data.IDataReader,System.String,System.Collections.Generic.Dictionary{System.String,System.Reflection.PropertyInfo})">
            <summary>
            Creates a list of a given type from all the rows in a DataReader.
            
            Note this method uses Reflection so this isn't a high performance
            operation, but it can be useful for generic data reader to entity
            conversions on the fly and with anonymous types.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="reader">An open DataReader that's in position to read</param>
            <param name="propertiesToSkip">Optional - comma delimited list of fields that you don't want to update</param>
            <param name="piList">
            Optional - Cached PropertyInfo dictionary that holds property info data for this object.
            Can be used for caching hte PropertyInfo structure for multiple operations to speed up
            translation. If not passed automatically created.
            </param>
            <returns></returns>
            <remarks>DataReader is not closed by this method. Make sure you call reader.close() afterwards</remarks>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.DataReaderToIEnumerable``1(System.Data.IDataReader,System.String,System.Collections.Generic.Dictionary{System.String,System.Reflection.PropertyInfo})">
             <summary>
             Creates an IEnumerable of T from an open DataReader instance.
            
             Note this method uses Reflection so this isn't a high performance
             operation, but it can be useful for generic data reader to entity
             conversions on the fly and with anonymous types.
             </summary>
             <param name="reader">An open DataReader that's in position to read</param>
             <param name="propertiesToSkip">Optional - comma delimited list of fields that you don't want to update</param>
             <param name="piList">
             Optional - Cached PropertyInfo dictionary that holds property info data for this object.
             Can be used for caching hte PropertyInfo structure for multiple operations to speed up
             translation. If not passed automatically created.
             </param>
             <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.DataReaderToObject(System.Data.IDataReader,System.Object,System.String,System.Collections.Generic.Dictionary{System.String,System.Reflection.PropertyInfo})">
            <summary>
            Populates the properties of an object from a single DataReader row using
            Reflection by matching the DataReader fields to a public property on
            the object passed in. Unmatched properties are left unchanged.
            
            You need to pass in a data reader located on the active row you want
            to serialize.
            
            This routine works best for matching pure data entities and should
            be used only in low volume environments where retrieval speed is not
            critical due to its use of Reflection.
            </summary>
            <param name="reader">Instance of the DataReader to read data from. Should be located on the correct record (Read() should have been called on it before calling this method)</param>
            <param name="instance">Instance of the object to populate properties on</param>
            <param name="propertiesToSkip">Optional - A comma delimited list of object properties that should not be updated</param>
            <param name="piList">Optional - Cached PropertyInfo dictionary that holds property info data for this object</param>
        </member>
        <member name="F:Westwind.Utilities.DataUtils.MinimumSqlDate">
            <summary>
            The default SQL date used by InitializeDataRowWithBlanks. Considered a blank date instead of null.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.InitializeDataRowWithBlanks(System.Data.DataRow)">
            <summary>
            Initializes a Datarow containing NULL values with 'empty' values instead.
            Empty values are:
            String - ""
            all number types - 0 or 0.00
            DateTime - Value of MinimumSqlData (1/1/1900 by default);
            Boolean - false
            Binary values and timestamps are left alone
            </summary>
            <param name="row">DataRow to be initialized</param>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.GetDbProviderFactory(System.String,System.String)">
            <summary>
            Loads a SQL Provider factory based on the DbFactory type name and assembly.       
            </summary>
            <param name="dbProviderFactoryTypename">Type name of the DbProviderFactory</param>
            <param name="assemblyName">Short assembly name of the provider factory. Note: Host project needs to have a reference to this assembly</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.GetDbProviderFactory(Westwind.Utilities.DataAccessProviderTypes)">
            <summary>
            This method loads various providers dynamically similar to the 
            way that DbProviderFactories.GetFactory() works except that
            this API is not available on .NET Standard 2.0
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.GetDbProviderFactory(System.String)">
            <summary>
            Returns a provider factory using the old Provider Model names from full framework .NET.
            Simply calls DbProviderFactories.
            </summary>
            <param name="providerName"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.SqlTypeToDotNetType(System.Data.SqlDbType)">
            <summary>
            Maps a SqlDbType to a .NET type
            </summary>
            <param name="sqlType"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.DbTypeToDotNetType(System.Data.DbType)">
            <summary>
            Maps a DbType to a .NET native type
            </summary>
            <param name="sqlType"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.DotNetTypeToDbType(System.Type)">
            <summary>
            Converts a .NET type into a DbType value
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.DotNetTypeToSqlType(System.Type)">
            <summary>
            Converts a .NET type into a SqlDbType.
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.GetSqlCommand(System.String,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Creates a Command object and opens a connection
            </summary>
            <param name="ConnectionString"></param>
            <param name="Sql"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.GetSqlDataReader(System.String,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Returns a SqlDataReader object from a SQL string.
            
            Please ensure you close the Reader object
            </summary>
            <param name="ConnectionString"></param>
            <param name="Sql"></param>
            <param name="Parameters"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.GetDataTable(System.String,System.String,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Returns a DataTable from a Sql Command string passed in.
            </summary>
            <param name="Tablename"></param>
            <param name="ConnectionString"></param>
            <param name="Sql"></param>
            <param name="Parameters"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DataUtils.CloseConnection(System.Data.SqlClient.SqlCommand)">
            <summary>
            Closes a connection
            </summary>
            <param name="Command"></param>
        </member>
        <member name="T:Westwind.Utilities.DebugUtils">
            <summary>
            DebugUtils class contains various utility methods
            for debugging and diagnostic tasks
            </summary>
        </member>
        <member name="M:Westwind.Utilities.DebugUtils.GetInnerMostException(System.Exception)">
            <summary>
            Returns the innermost Exception for an object
            </summary>
            <param name="ex"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.DebugUtils.GetInnerExceptions(System.Exception)">
            <summary>
            Returns an array of the entire exception list in reverse order
            (innermost to outermost exception)
            </summary>
            <param name="ex">The original exception to work off</param>
            <returns>Array of Exceptions from innermost to outermost</returns>
        </member>
        <member name="M:Westwind.Utilities.DebugUtils.GetTextWithLineNumbers(System.String,System.String)">
            <summary>
            Returns the text with a prefix of line numbers
            </summary>
            <param name="text"></param>
            <param name="lineFormat">Line format used to create the line. 0 is the line number, 1 is the text.</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Extensions.DateTimeExtensions.Between(System.DateTime,System.DateTime,System.DateTime)">
            <summary>
            Returns true if the date is between or equal to one of the two values.
            </summary>
            <param name="date">DateTime Base, from where the calculation will be preformed.</param>
            <param name="startvalue">Start date to check for</param>
            <param name="endvalue">End date to check for</param>
            <returns>boolean value indicating if the date is between or equal to one of the two values</returns>
        </member>
        <member name="M:Westwind.Utilities.Extensions.DateTimeExtensions.EndOfDay(System.DateTime)">
            <summary>
            Returns 12:59:59pm time for the date passed.
            Useful for date only search ranges end value
            </summary>
            <param name="date">Date to convert</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Extensions.DateTimeExtensions.BeginningOfDay(System.DateTime)">
            <summary>
            Returns 12:00am time for the date passed.
            Useful for date only search ranges start value
            </summary>
            <param name="date">Date to convert</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Extensions.DateTimeExtensions.EndOfMonth(System.DateTime)">
            <summary>
            Returns the very end of the given month (the last millisecond of the last hour for the given date)
            </summary>
            <param name="obj">DateTime Base, from where the calculation will be preformed.</param>
            <returns>Returns the very end of the given month (the last millisecond of the last hour for the given date)</returns>
        </member>
        <member name="M:Westwind.Utilities.Extensions.DateTimeExtensions.BeginningOfMonth(System.DateTime)">
            <summary>
            Returns the Start of the given month (the fist millisecond of the given date)
            </summary>
            <param name="obj">DateTime Base, from where the calculation will be preformed.</param>
            <returns>Returns the Start of the given month (the fist millisecond of the given date)</returns>
        </member>
        <member name="T:Westwind.Utilities.Extensions.DictionaryExtensions">
            <summary>
            Extends dictionary classes with XML 
            </summary>
        </member>
        <member name="M:Westwind.Utilities.Extensions.DictionaryExtensions.ToXml(System.Collections.IDictionary,System.String)">
            <summary>
            Serializes the dictionary to an XML string
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.Extensions.DictionaryExtensions.FromXml(System.Collections.IDictionary,System.String)">
            <summary>
            Loads the dictionary from an Xml string
            </summary>
            <param name="xml"></param>
        </member>
        <member name="M:Westwind.Utilities.Linq.LinqExtensions.FlattenTree``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Collections.Generic.IEnumerable{``0}})">
            <summary>
            Flattens a tree to a plain enumerable for querying.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="e">Enumeration to work on</param>
            <param name="f">Expression that points at the element list to select from</param>
            <returns></returns>
            <example>
            var topics = topicTree.FlattenTree(t=> t.Topics);
            </example>
        </member>
        <member name="T:Westwind.Utilities.FileUtils">
            <summary>
            wwUtils class which contains a set of common utility classes for 
            Formatting strings
            Reflection Helpers
            Object Serialization
            Stream Manipulation
            </summary>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.CopyStream(System.IO.Stream,System.IO.Stream,System.Int32)">
            <summary>
            Copies the content of the one stream to another.
            Streams must be open and stay open.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.CopyStream(System.IO.Stream,System.IO.Stream,System.Int32,System.Boolean)">
            <summary>
            Copies the content of one stream to another by appending to the target stream
            Streams must be open when passed in.
            </summary>
            <param name="source"></param>
            <param name="dest"></param>
            <param name="bufferSize"></param>
            <param name="append"></param>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.OpenStreamReaderWithEncoding(System.String)">
            <summary>
            Opens a stream reader with the appropriate text encoding applied.
            </summary>
            <param name="srcFile"></param>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.GetPhysicalPath(System.String)">
            <summary>
            This function returns the actual filename of a file
            that exists on disk. If you provide a path/file name
            that is not proper cased as input, this function fixes
            it up and returns the file using the path and file names
            as they exist on disk.
            
            If the file doesn't exist the original filename is 
            returned.
            </summary>
            <param name="filename">A filename to check</param>
            <returns>On disk file name and path with the disk casing</returns>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.GetCompactPath(System.String,System.Int32)">
            <summary>
            Returns a compact path with elipsis from a long path
            </summary>
            <param name="path">Original path to potentially trim</param>
            <param name="length">Max length of the path string returned</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.GetRelativePath(System.String,System.String)">
            <summary>
            Returns a relative path string from a full path based on a base path
            provided.
            </summary>
            <param name="fullPath">The path to convert. Can be either a file or a directory</param>
            <param name="basePath">The base path on which relative processing is based. Should be a directory.</param>
            <returns>
            String of the relative path.
            
            Examples of returned values:
             test.txt, ..\test.txt, ..\..\..\test.txt, ., .., subdir\test.txt
            </returns>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.ExpandPathEnvironmentVariables(System.String)">
            <summary>
            Expands Path Environment Variables like %appdata% in paths.
            </summary>
            <param name="path">Path with potential environment variables.</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.SafeFilename(System.String,System.String,System.String)">
            <summary>
            Returns a safe filename from a string by stripping out
            illegal characters
            </summary>
            <param name="fileName">Filename to fix up</param>
            <param name="replacementString">String value to replace illegal chars with. Defaults empty string</param>
            <param name="spaceReplacement">Optional - replace spaces with a specified string.</param>
            <returns>Fixed up string</returns>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.CamelCaseSafeFilename(System.String)">
            <summary>
            Returns a safe filename in CamelCase
            </summary>
            <param name="filename"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.NormalizePath(System.String)">
            <summary>
            Normalizes a file path to the operating system default
            slashes.
            </summary>
            <param name="path"></param>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.NormalizeDirectory(System.String)">
            <summary>
            Normalizes path with slashes and forces a trailing slash 
            on the end of the path.
            </summary>
            <param name="Path">Path to pass in</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.AddTrailingSlash(System.String)">
            <summary>
            Adds a trailing slash to a path if there isn't one.
            </summary>
            <param name="path">A file system path</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.GetFileEncoding(System.String)">
            <summary>
            Detects the byte order mark of a file and returns
            an appropriate encoding for the file.
            </summary>
            <param name="srcFile"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.CopyDirectory(System.String,System.String,System.Boolean,System.Boolean)">
            <summary>
            Copies directories using either top level only or deep merge copy.
            
            Copies a directory by copying files from source folder to target folder.
            If folder(s) don't exist they are created.
            
            deepCopy copies files in sub-folders and merges them into the target
            folder. Unless you specify deleteFirst, files are copied and overwrite or add to
            existing structure, leaving old files in place. Use deleteFirst if you
            want a new structure with only the source files.
            </summary>
            <param name="sourcePath">Path to copy from</param>
            <param name="targetPath">Path to copy to</param>
            <param name="deleteFirst">If true deletes target folder before copying. Otherwise files are merged from source into target.</param>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.DeleteFiles(System.String,System.String,System.Boolean)">
            <summary>
            Deletes files in a folder based on a file spec recursively
            </summary>
            <param name="folder"></param>
            <param name="filespec"></param>
            <param name="recursive"></param>
            <returns>0 when no errors, otherwise number of files that have failed to delete (usually locked)</returns>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.DeleteTimedoutFiles(System.String,System.Int32)">
            <summary>
            Deletes files based on a file spec and a given timeout.
            This routine is useful for cleaning up temp files in 
            Web applications.
            </summary>
            <param name="filespec">A filespec that includes path and/or wildcards to select files</param>
            <param name="seconds">The timeout - if files are older than this timeout they are deleted</param>
        </member>
        <member name="M:Westwind.Utilities.FileUtils.GetChecksumFromFile(System.String,System.String)">
            <summary>
            Creates an MD5 checksum of a file
            </summary>
            <param name="file"></param>        
            <param name="hashAlgorithm">SHA256, SHA512, SHA1, MD5</param>
            <returns>BinHex file hash</returns>
        </member>
        <member name="M:Westwind.Utilities.GenericUtils.Inlist``1(``0,``0[])">
            <summary>
            Determines whether an item is contained in a list of other items
            </summary>
            <example>
            bool exists = Inlist&lt;string&gt;("Rick","Mike","Billy","Rick","Frank"); // true;
            </example>
            <typeparam name="T">Any type</typeparam>
            <param name="item">The item to look for</param>
            <param name="list">Any number of items to search (params)</param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.HtmlUtils">
            <summary>
            Html string and formatting utilities
            </summary>
        </member>
        <member name="M:Westwind.Utilities.HtmlUtils.FixHTMLForDisplay(System.String)">
            <summary>
            Replaces and  and Quote characters to HTML safe equivalents.
            </summary>
            <param name="html">HTML to convert</param>
            <returns>Returns an HTML string of the converted text</returns>
        </member>
        <member name="M:Westwind.Utilities.HtmlUtils.StripHtml(System.String)">
            <summary>
            Strips HTML tags out of an HTML string and returns just the text.
            </summary>
            <param name="html">Html String</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.HtmlUtils.DisplayMemo(System.String)">
            <summary>
            Fixes a plain text field for display as HTML by replacing carriage returns 
            with the appropriate br and p tags for breaks.
            </summary>
            <param name="htmlText">Input string</param>
            <returns>Fixed up string</returns>
        </member>
        <member name="M:Westwind.Utilities.HtmlUtils.DisplayMemoEncoded(System.String)">
            <summary>
            Method that handles handles display of text by breaking text.
            Unlike the non-encoded version it encodes any embedded HTML text
            </summary>
            <param name="text"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.HtmlUtils.HtmlEncode(System.String)">
            <summary>
            HTML-encodes a string and returns the encoded string.
            </summary>
            <param name="text">The text string to encode. </param>
            <returns>The HTML-encoded text.</returns>
        </member>
        <member name="M:Westwind.Utilities.HtmlUtils.Href(System.String,System.String,System.String,System.String)">
            <summary>
            Create an Href HTML link
            </summary>
            <param name="text"></param>
            <param name="url"></param>
            <param name="target"></param>
            <param name="additionalMarkup"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.HtmlUtils.Href(System.String)">
            <summary>
            Creates an HREF HTML Link
            </summary>
            <param name="url"></param>
        </member>
        <member name="M:Westwind.Utilities.HtmlUtils.ImgRef(System.String,System.String)">
            <summary>
            Returns an IMG link as a string. If the image is null
            or empty a blank string is returned.
            </summary>
            <param name="imageUrl"></param>
            <param name="additionalMarkup">any additional attributes added to the element</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.HtmlUtils.ResolveUrl(System.String)">
            <summary>
            Resolves a URL based on the current HTTPContext
            
            Note this method is added here internally only
            to support the HREF() method and ~ expansion
            on urls.
            </summary>
            <param name="originalUrl"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.HtmlUtils.HtmlAbstract(System.String,System.Int32)">
            <summary>
            Creates an Abstract from an HTML document. Strips the 
            HTML into plain text, then creates an abstract.
            </summary>
            <param name="html"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.HtmlUtils.SanitizeHtml(System.String,System.String)">
            <summary>
            Sanitizes HTML to some of the most of 
            </summary>
            <remarks>
            This provides rudimentary HTML sanitation catching the most obvious
            XSS script attack vectors. For mroe complete HTML Sanitation please look into
            a dedicated HTML Sanitizer.
            </remarks>
            <param name="html">input html</param>
            <param name="htmlTagBlacklist">A list of HTML tags that are stripped.</param>
            <returns>Sanitized HTML</returns>
        </member>
        <member name="T:Westwind.Utilities.HttpUtils">
            <summary>
            Simple HTTP request helper to let you retrieve data from a Web
            server and convert it to something useful.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.HttpUtils.HttpRequestString(System.String)">
            <summary>
            Retrieves and Http request and returns data as a string.
            </summary>
            <param name="url">A url to call for a GET request without custom headers</param>
            <returns>string of HTTP response</returns>
        </member>
        <member name="M:Westwind.Utilities.HttpUtils.HttpRequestString(Westwind.Utilities.HttpRequestSettings)">
            <summary>
            Retrieves and Http request and returns data as a string.
            </summary>
            <param name="settings">Pass HTTP request configuration parameters object to set the URL, Verb, Headers, content and more</param>
            <returns>string of HTTP response</returns>
        </member>
        <member name="M:Westwind.Utilities.HttpUtils.JsonRequest``1(Westwind.Utilities.HttpRequestSettings)">
            <summary>
            Makes an HTTP with option JSON data serialized from an object
            and parses the result from JSON back into an object.
            Assumes that the service returns a JSON response
            </summary>
            <typeparam name="TResultType">The type of the object returned</typeparam>
            <param name="settings"><see cref="T:Westwind.Utilities.HttpRequestSettings"/>
            Configuration object for the HTTP request made to the server.
            </param>
            <returns>deserialized value/object from returned JSON data</returns>
        </member>
        <member name="M:Westwind.Utilities.HttpUtils.HttpRequestStringAsync(System.String)">
            <summary>
            Retrieves and Http request and returns data as a string.
            </summary>
            <param name="url">The Url to access</param>
            <returns>string of HTTP response</returns>
        </member>
        <member name="M:Westwind.Utilities.HttpUtils.HttpRequestStringAsync(Westwind.Utilities.HttpRequestSettings)">
            <summary>
            Retrieves and Http request and returns data as a string.
            </summary>
            <param name="settings">Pass HTTP request configuration parameters object to set the URL, Verb, Headers, content and more</param>
            <returns>string of HTTP response</returns>
        </member>
        <member name="M:Westwind.Utilities.HttpUtils.JsonRequestAsync``1(Westwind.Utilities.HttpRequestSettings)">
            <summary>
            Makes an HTTP with option JSON data serialized from an object
            and parses the result from JSON back into an object.
            Assumes that the service returns a JSON response and that
            any data sent is json.
            </summary>
            <typeparam name="TResultType">The type of the object returned</typeparam>
            <param name="settings"><see cref="T:Westwind.Utilities.HttpRequestSettings"/>
            Configuration object for the HTTP request made to the server.
            </param>
            <returns>deserialized value/object from returned JSON data</returns>
        </member>
        <member name="T:Westwind.Utilities.HttpRequestSettings">
            <summary>
            Configuration object for Http Requests used by the HttpUtils
            methods. Allows you to set the URL, verb, headers proxy and
            credentials that are then passed to the HTTP client.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.Url">
            <summary>
            The URL to send the request to
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.HttpVerb">
            <summary>
            The HTTP verb to use when sending the request
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.Content">
            <summary>
            The Request content to send to the server.
            Data can be either string or byte[] type
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.Encoding">
            <summary>
            Content Encoding for the data sent to to server
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.IsRawData">
            <summary>
            When true data is not translated. For example
            when using JSON Request if you want to send 
            raw POST data rather than a serialized object.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.ContentType">
            <summary>
            The content type of any request data sent to the server
            in the Data property.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.Timeout">
            <summary>
            The request timeout in milliseconds. 0 for default (20 seconds typically)
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.Headers">
            <summary>
            Any Http request headers you want to set for this request
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.Credentials">
            <summary>
            Authentication information for this request
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.PreAuthenticate">
            <summary>
            Determines whether credentials pre-authenticate
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.Proxy">
            <summary>
            An optional proxy to set for this request
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.CapturedRequestContent">
            <summary>
            Capture request string data that was actually sent to the server.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.CapturedResponseContent">
            <summary>
            Captured string Response Data from the server
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.ResponseByteData">
            <summary>
            Capture binary Response data from the server when 
            using the Data methods rather than string methods.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.ResponseStatusCode">
            <summary>
            The HTTP Status code of the HTTP response
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.Response">
            <summary>
            Instance of the full HttpResponse object that gives access
            to the full HttpWebResponse object to provide things
            like Response headers, status etc.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.HttpRequestSettings.UserAgent">
            <summary>
            The User Agent string sent to the server
            </summary>
        </member>
        <member name="T:Westwind.Utilities.HttpUtilsWebClient">
            <summary>
            Customized version of WebClient that provides access
            to the Response object so we can read result data 
            from the Response.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.HttpUtilsWebClient.#ctor(Westwind.Utilities.HttpRequestSettings)">
            <summary>
            Intializes this instance of WebClient with settings values
            </summary>
            <param name="settings"></param>
        </member>
        <member name="T:Westwind.Utilities.ImageUtils">
            <summary>
            Summary description for wwImaging.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.ResizeImage(System.String,System.Int32,System.Int32,System.Drawing.Drawing2D.InterpolationMode)">
            <summary>
            Creates a resized bitmap from an existing image on disk. Resizes the image by 
            creating an aspect ratio safe image. Image is sized to the larger size of width
            height and then smaller size is adjusted by aspect ratio.
            
            Image is returned as Bitmap - call Dispose() on the returned Bitmap object
            </summary>
            <param name="filename"></param>
            <param name="width"></param>
            <param name="height"></param>
            <returns>Bitmap or null</returns>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.ResizeImage(System.Byte[],System.Int32,System.Int32,System.Drawing.Drawing2D.InterpolationMode)">
            <summary>
            Resizes an image from byte array and returns a Bitmap.
            Make sure you Dispose() the bitmap after you're done 
            with it!
            </summary>
            <param name="data"></param>
            <param name="width"></param>
            <param name="height"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.ResizeImage(System.String,System.String,System.Int32,System.Int32,System.Drawing.Drawing2D.InterpolationMode,System.Int32)">
            <summary>
            Resizes an image and saves the image to a file
            </summary>
            <param name="filename"></param>
            <param name="outputFilename"></param>
            <param name="width"></param>
            <param name="height"></param>
            <param name="mode"></param>
            <param name="jpegCompressionMode">
            If using a jpeg image 
            </param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.ResizeImage(System.Drawing.Bitmap,System.Int32,System.Int32,System.Drawing.Drawing2D.InterpolationMode)">
            <summary>
            Resizes an image from a bitmap.
            Note image will resize to the larger of the two sides
            </summary>
            <param name="bmp">Bitmap to resize</param>
            <param name="width">new width</param>
            <param name="height">new height</param>
            <returns>resized or original bitmap. Be sure to Dispose this bitmap</returns>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.AdjustImageToRatio(System.IO.Stream,System.Decimal,System.Int32,System.Int32)">
            <summary>
            Adjusts an image to a specific aspect ratio by clipping
            from the center outward - essentially capturing the center
            to fit the width/height of the aspect ratio.
            </summary>
            <param name="imageStream">Stream to an image</param>
            <param name="ratio">Aspect ratio default is 16:9</param>
            <param name="resizeWidth">Optionally resize with to this width (if larger than height)</param>
            <param name="resizeHeight">Optionally resize to this height (if larger than width)</param>
            <returns>Bitmap image - make sure to dispose this image</returns>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.AdjustImageToRatio(System.Byte[],System.Decimal,System.Int32,System.Int32)">
            <summary>
            Adjusts an image to a specific aspect ratio by clipping
            from the center outward - essentially capturing the center
            to fit the width/height of the aspect ratio.
            </summary>
            <param name="imageContent"></param>
            <param name="ratio"></param>
            <param name="resizeWidth"></param>
            <param name="resizeHeight"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.SaveJpeg(System.Drawing.Bitmap,System.String,System.Int64)">
            <summary>
            Saves a jpeg BitMap  to disk with a jpeg quality setting.
            Does not dispose the bitmap.
            </summary>
            <param name="bmp">Bitmap to save</param>
            <param name="outputFileName">file to write it to</param>
            <param name="jpegQuality"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.SaveJpeg(System.Drawing.Bitmap,System.IO.Stream,System.Int64)">
            <summary>
            Saves a jpeg BitMap  to disk with a jpeg quality setting.
            Does not dispose the bitmap.
            </summary>
            <param name="bmp">Bitmap to save</param>
            <param name="outputStream">Binary stream to write image data to</param>
            <param name="jpegQuality"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.RoateImage(System.String,System.String,System.Drawing.RotateFlipType,System.Int32)">
            <summary>
            Rotates an image and writes out the rotated image to a file.
            </summary>
            <param name="filename">The original image to roatate</param>
            <param name="outputFilename">The output file of the rotated image file. If not passed the original file is overwritten</param>
            <param name="type">Type of rotation to perform</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.StripJpgExifData(System.String,System.Int32)">
            <summary>
            Opens the image and writes it back out, stripping any Exif data
            </summary>
            <param name="imageFile">Image to remove exif data from</param>
            <param name="imageQuality">image quality 0-100 (100 no compression)</param>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.NormalizeJpgImageRotation(System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            If the image contains image rotation Exif data, apply the image rotation and
            remove the Exif data. Optionally also allows for image resizing in the same
            operation.
            </summary>
            <param name="imageFile">Image file to work on</param>
            <param name="imageQuality">Jpg</param>
            <param name="width"></param>
            <param name="height"></param>
        </member>
        <member name="P:Westwind.Utilities.ImageUtils.Encoders">
            <summary>
            A quick lookup for getting image encoders
            </summary>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.GetImageFormatFromFilename(System.String)">
            <summary>
            Tries to return an image format 
            </summary>
            <param name="filename"></param>
            <returns>Image format or ImageFormat.Emf if no match was found</returns>
        </member>
        <member name="M:Westwind.Utilities.ImageUtils.GetImageMediaTypeFromFilename(System.String)">
            <summary>
            Returns the image media type for a give file extension based
            on a filename or url passed in.
            </summary>
            <param name="file"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.JsonSerializationUtils">
            <summary>
            JSON Serialization helper class that uses JSON.NET.
            This class serializes JSON to and from string and 
            files on disk.
            </summary>
            <remarks>
            JSON.NET is loaded dynamically at runtime to avoid hard 
            linking the Newtonsoft.Json.dll to Westwind.Utilities.
            Just make sure that your project includes a reference 
            to JSON.NET when using this class.
            </remarks>
        </member>
        <member name="M:Westwind.Utilities.JsonSerializationUtils.Serialize(System.Object,System.Boolean,System.Boolean)">
            <summary>
            Serializes an object to an XML string. Unlike the other SerializeObject overloads
            this methods *returns a string* rather than a bool result!
            </summary>
            <param name="value">Value to serialize</param>
            <param name="throwExceptions">Determines if a failure throws or returns null</param>
            <returns>
            null on error otherwise the Xml String.         
            </returns>
            <remarks>
            If null is passed in null is also returned so you might want
            to check for null before calling this method.
            </remarks>
        </member>
        <member name="M:Westwind.Utilities.JsonSerializationUtils.SerializeToFile(System.Object,System.String,System.Boolean,System.Boolean)">
            <summary>
            Serializes an object instance to a JSON file.
            </summary>
            <param name="value">the value to serialize</param>
            <param name="fileName">Full path to the file to write out with JSON.</param>
            <param name="throwExceptions">Determines whether exceptions are thrown or false is returned</param>
            <param name="formatJsonOutput">if true pretty-formats the JSON with line breaks</param>
            <returns>true or false</returns>        
        </member>
        <member name="M:Westwind.Utilities.JsonSerializationUtils.DeserializeFromFile(System.String,System.Type,System.Boolean)">
            <summary>
            Deserializes an object from file and returns a reference.
            </summary>
            <param name="fileName">name of the file to serialize to</param>
            <param name="objectType">The Type of the object. Use typeof(yourobject class)</param>
            <param name="binarySerialization">determines whether we use Xml or Binary serialization</param>
            <param name="throwExceptions">determines whether failure will throw rather than return null on failure</param>
            <returns>Instance of the deserialized object or null. Must be cast to your object type</returns>
        </member>
        <member name="M:Westwind.Utilities.JsonSerializationUtils.FormatJsonString(System.String)">
            <summary>
            Takes a single line JSON string and pretty formats
            it using indented formatting.
            </summary>
            <param name="json"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.JsonSerializationUtils.CreateJsonNet(System.Boolean)">
            <summary>
            Dynamically creates an instance of JSON.NET
            </summary>
            <param name="throwExceptions">If true throws exceptions otherwise returns null</param>
            <returns>Dynamic JsonSerializer instance</returns>
        </member>
        <member name="M:Westwind.Utilities.LanguageUtils.IgnoreErrors(System.Action)">
            <summary>
            Runs an operation and ignores any Exceptions that occur.
            Returns true or falls depending on whether catch was
            triggered
            </summary>
            <param name="operation">lambda that performs an operation that might throw</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.LanguageUtils.IgnoreErrors``1(System.Func{``0},``0)">
            <summary>
            Runs an function that returns a value and ignores any Exceptions that occur.
            Returns true or falls depending on whether catch was
            triggered
            </summary>
            <param name="operation">parameterless lamda that returns a value of T</param>
            <param name="defaultValue">Default value returned if operation fails</param>
        </member>
        <member name="M:Westwind.Utilities.NetworkUtils.GetBaseDomain(System.String)">
            <summary>
            Retrieves a base domain name from a full domain name.
            For example: www.west-wind.com produces west-wind.com
            </summary>
            <param name="domainName">Dns Domain name as a string</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.NetworkUtils.GetBaseDomain(System.Uri)">
            <summary>
            Returns the base domain from a domain name
            Example: http://www.west-wind.com returns west-wind.com
            </summary>
            <param name="uri"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.ReflectionUtils">
            <summary>
            Collection of Reflection and type conversion related utility functions
            </summary>
        </member>
        <member name="F:Westwind.Utilities.ReflectionUtils.MemberAccess">
            <summary>
            Binding Flags constant to be reused for all Reflection access methods.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.CreateInstanceFromType(System.Type,System.Object[])">
            <summary>
            Creates an instance from a type by calling the parameterless constructor.
            
            Note this will not work with COM objects - continue to use the Activator.CreateInstance
            for COM objects.
            <seealso>Class wwUtils</seealso>
            </summary>
            <param name="typeToCreate">
            The type from which to create an instance.
            </param>
            <returns>object</returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.CreateInstanceFromString(System.String,System.Object[])">
            <summary>
            Creates an instance of a type based on a string. Assumes that the type's
            </summary>
            <param name="typeName"></param>
            <param name="args"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetTypeFromName(System.String,System.String)">
            <summary>
            Helper routine that looks up a type name and tries to retrieve the
            full type reference using GetType() and if not found looking 
            in the actively executing assemblies and optionally loading
            the specified assembly name.
            </summary>
            <param name="typeName">type to load</param>
            <param name="assemblyName">
            Optional assembly name to load from if type cannot be loaded initially. 
            Use for lazy loading of assemblies without taking a type dependency.
            </param>
            <returns>null</returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetTypeFromName(System.String)">
            <summary>
            Overload for backwards compatibility which only tries to load
            assemblies that are already loaded in memory.
            </summary>
            <param name="typeName"></param>
            <returns></returns>        
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.CreateComInstance(System.String)">
            <summary>
            Creates a COM instance from a ProgID. Loads either
            Exe or DLL servers.
            </summary>
            <param name="progId"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.LoadAssembly(System.String)">
            <summary>
            Try to load an assembly into the application's app domain.
            Loads by name first then checks for filename
            </summary>
            <param name="assemblyName">Assembly name or full path</param>
            <returns>null on failure</returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.StringToTypedValue(System.String,System.Type,System.Globalization.CultureInfo)">
            <summary>
            Turns a string into a typed value generically.
            Explicitly assigns common types and falls back
            on using type converters for unhandled types.         
            
            Common uses: 
            * UI -&gt; to data conversions
            * Parsers
            <seealso>Class ReflectionUtils</seealso>
            </summary>
            <param name="sourceString">
            The string to convert from
            </param>
            <param name="targetType">
            The type to convert to
            </param>
            <param name="culture">
            Culture used for numeric and datetime values.
            </param>
            <returns>object. Throws exception if it cannot be converted.</returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.StringToTypedValue``1(System.String,System.Globalization.CultureInfo)">
            <summary>
            Generic version allow for automatic type conversion without the explicit type
            parameter
            </summary>
            <typeparam name="T">Type to be converted to</typeparam>
            <param name="sourceString">input string value to be converted</param>
            <param name="culture">Culture applied to conversion</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.TypedValueToString(System.Object,System.Globalization.CultureInfo,System.String)">
            <summary>
            Converts a type to string if possible. This method supports an optional culture generically on any value.
            It calls the ToString() method on common types and uses a type converter on all other objects
            if available
            </summary>
            <param name="rawValue">The Value or Object to convert to a string</param>
            <param name="culture">Culture for numeric and DateTime values</param>
            <param name="unsupportedReturn">Return string for unsupported types</param>
            <returns>string</returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetField(System.Object,System.String)">
            <summary>
            Retrieve a field dynamically from an object. This is a simple implementation that's
            straight Reflection and doesn't support indexers.
            </summary>
            <param name="Object">Object to retreve Field from</param>
            <param name="Property">name of the field to retrieve</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetPropertyInternal(System.Object,System.String)">
            <summary>
            Parses Properties and Fields including Array and Collection references.
            Used internally for the 'Ex' Reflection methods.
            </summary>
            <param name="Parent"></param>
            <param name="Property"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.SetPropertyInternal(System.Object,System.String,System.Object)">
            <summary>
            Parses Properties and Fields including Array and Collection references.
            </summary>
            <param name="Parent"></param>
            <param name="Property"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetPropertyEx(System.Object,System.String)">
            <summary>
            Returns a property or field value using a base object and sub members including . syntax.
            For example, you can access: oCustomer.oData.Company with (this,"oCustomer.oData.Company")
            This method also supports indexers in the Property value such as:
            Customer.DataSet.Tables["Customers"].Rows[0]
            </summary>
            <param name="Parent">Parent object to 'start' parsing from. Typically this will be the Page.</param>
            <param name="Property">The property to retrieve. Example: 'Customer.Entity.Company'</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetPropertyInfoEx(System.Object,System.String)">
            <summary>
            Returns a PropertyInfo object for a given dynamically accessed property
            
            Property selection can be specified using . syntax ("Address.Street" or "DataTable[0].Rows[1]") hence the 'Ex' name for this function.
            </summary>
            <param name="Parent"></param>
            <param name="Property"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetPropertyInfoInternal(System.Object,System.String)">
            <summary>
            Returns a PropertyInfo structure from an extended Property reference
            </summary>
            <param name="Parent"></param>
            <param name="Property"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.SetProperty(System.Object,System.String,System.Object)">
            <summary>
            Sets the property on an object. This is a simple method that uses straight Reflection 
            and doesn't support indexers.
            </summary>
            <param name="obj">Object to set property on</param>
            <param name="property">Name of the property to set</param>
            <param name="value">value to set it to</param>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.SetField(System.Object,System.String,System.Object)">
            <summary>
            Sets the field on an object. This is a simple method that uses straight Reflection 
            and doesn't support indexers.
            </summary>
            <param name="obj">Object to set property on</param>
            <param name="property">Name of the field to set</param>
            <param name="value">value to set it to</param>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.SetPropertyEx(System.Object,System.String,System.Object)">
            <summary>
            Sets a value on an object. Supports . syntax for named properties
            (ie. Customer.Entity.Company) as well as indexers.
            </summary>
            <param name="Object ParentParent">
            Object to set the property on.
            </param>
            <param name="String PropertyProperty">
            Property to set. Can be an object hierarchy with . syntax and can 
            include indexers. Examples: Customer.Entity.Company, 
            Customer.DataSet.Tables["Customers"].Rows[0]
            </param>
            <param name="Object ValueValue">
            Value to set the property to
            </param>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.CallMethod(System.Object,System.String,System.Type[],System.Object[])">
            <summary>
            Calls a method on an object dynamically. This version requires explicit
            specification of the parameter type signatures.
            </summary>
            <param name="instance">Instance of object to call method on</param>
            <param name="method">The method to call as a stringToTypedValue</param>
            <param name="parameterTypes">Specify each of the types for each parameter passed. 
            You can also pass null, but you may get errors for ambiguous methods signatures
            when null parameters are passed</param>
            <param name="parms">any variable number of parameters.</param>        
            <returns>object</returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.CallMethod(System.Object,System.String,System.Object[])">
            <summary>
            Calls a method on an object dynamically. 
            
            This version doesn't require specific parameter signatures to be passed. 
            Instead parameter types are inferred based on types passed. Note that if 
            you pass a null parameter, type inferrance cannot occur and if overloads
            exist the call may fail. if so use the more detailed overload of this method.
            </summary> 
            <param name="instance">Instance of object to call method on</param>
            <param name="method">The method to call as a stringToTypedValue</param>
            <param name="parameterTypes">Specify each of the types for each parameter passed. 
            You can also pass null, but you may get errors for ambiguous methods signatures
            when null parameters are passed</param>
            <param name="parms">any variable number of parameters.</param>        
            <returns>object</returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.CallMethodEx(System.Object,System.String,System.Object[])">
            <summary>
            Calls a method on an object with extended . syntax (object: this Method: Entity.CalculateOrderTotal)
            </summary>
            <param name="parent"></param>
            <param name="method"></param>
            <param name="params"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetStaticProperty(System.String,System.String)">
            <summary>
            Retrieves a value from  a static property by specifying a type full name and property
            </summary>
            <param name="typeName">Full type name (namespace.class)</param>
            <param name="property">Property to get value from</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetStaticProperty(System.Type,System.String)">
            <summary>
            Returns a static property from a given type
            </summary>
            <param name="type">Type instance for the static property</param>
            <param name="property">Property name as a string</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetProperty(System.Object,System.String)">
            <summary>
            Retrieve a property value from an object dynamically. This is a simple version
            that uses Reflection calls directly. It doesn't support indexers.
            </summary>
            <param name="instance">Object to make the call on</param>
            <param name="property">Property to retrieve</param>
            <returns>Object - cast to proper type</returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetEnumList(System.Type,System.Boolean)">
            <summary>
            Returns a List of KeyValuePair object
            </summary>
            <param name="enumeration"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetPropertyCom(System.Object,System.String)">
            <summary>
            Retrieve a dynamic 'non-typelib' property
            </summary>
            <param name="instance">Object to make the call on</param>
            <param name="property">Property to retrieve</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.GetPropertyExCom(System.Object,System.String)">
            <summary>
            Returns a property or field value using a base object and sub members including . syntax.
            For example, you can access: oCustomer.oData.Company with (this,"oCustomer.oData.Company")
            </summary>
            <param name="parent">Parent object to 'start' parsing from.</param>
            <param name="property">The property to retrieve. Example: 'oBus.oData.Company'</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.SetPropertyCom(System.Object,System.String,System.Object)">
            <summary>
            Sets the property on an object.
            </summary>
            <param name="inst">Object to set property on</param>
            <param name="Property">Name of the property to set</param>
            <param name="Value">value to set it to</param>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.SetPropertyExCom(System.Object,System.String,System.Object)">
            <summary>
            Sets the value of a field or property via Reflection. This method alws 
            for using '.' syntax to specify objects multiple levels down.
            
            ReflectionUtils.SetPropertyEx(this,"Invoice.LineItemsCount",10)
            
            which would be equivalent of:
            
            Invoice.LineItemsCount = 10;
            </summary>
            <param name="Object ParentParent">
            Object to set the property on.
            </param>
            <param name="String PropertyProperty">
            Property to set. Can be an object hierarchy with . syntax.
            </param>
            <param name="Object ValueValue">
            Value to set the property to
            </param>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.CallMethodCom(System.Object,System.String,System.Object[])">
            <summary>
            Wrapper method to call a 'dynamic' (non-typelib) method
            on a COM object
            </summary>
            <param name="params"></param>
            <param name="instance"></param>
            1st - Method name, 2nd - 1st parameter, 3rd - 2nd parm etc.
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ReflectionUtils.CallMethodExCom(System.Object,System.String,System.Object[])">
            <summary>
            Calls a method on a COM object with '.' syntax (Customer instance and Address.DoSomeThing method)
            </summary>
            <param name="parent">the object instance on which to call method</param>
            <param name="method">The method or . syntax path to the method (Address.Parse)</param>
            <param name="parms">Any number of parameters</param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.SecurityUtils">
            <summary>
            A set of utilities functions related to security.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.SecurityUtils.ImpersonateUser(System.String,System.String,System.String)">
            <summary>
            Logs on a user and changes the current process impersonation to that user.
            
            IMPORTANT: Returns a WindowsImpersonationContext and you have to either
            dispose this instance or call RevertImpersonation with it.
            </summary>
            <remarks>
            Requires Full Trust permissions in ASP.NET Web Applications.
            </remarks>
            <param name="username"></param>
            <param name="password"></param>
            <param name="domain"></param>
            <returns>WindowsImpersonation Context. Call RevertImpersonation() to clear the impersonation or Dispose() instance.</returns>
        </member>
        <member name="M:Westwind.Utilities.SecurityUtils.RevertImpersonation(System.Security.Principal.WindowsImpersonationContext)">
            <summary>
            Releases an impersonation context and releases associated resources
            </summary>
            <param name="context">WindowsImpersonation context created with ImpersonateUser</param>
        </member>
        <member name="M:Westwind.Utilities.SerializationUtils.SerializeObject(System.Object,System.String,System.Boolean)">
            <summary>
            Serializes an object instance to a file.
            </summary>
            <param name="instance">the object instance to serialize</param>
            <param name="fileName"></param>
            <param name="binarySerialization">determines whether XML serialization or binary serialization is used</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.SerializationUtils.SerializeObject(System.Object,System.Xml.XmlTextWriter,System.Boolean)">
            <summary>
            Overload that supports passing in an XML TextWriter. 
            </summary>
            <remarks>
            Note the Writer is not closed when serialization is complete 
            so the caller needs to handle closing.
            </remarks>
            <param name="instance">object to serialize</param>
            <param name="writer">XmlTextWriter instance to write output to</param>       
            <param name="throwExceptions">Determines whether false is returned on failure or an exception is thrown</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.SerializationUtils.SerializeObject(System.Object,System.String@)">
            <summary>
            Serializes an object into an XML string variable for easy 'manual' serialization
            </summary>
            <param name="instance">object to serialize</param>
            <param name="xmlResultString">resulting XML string passed as an out parameter</param>
            <returns>true or false</returns>
        </member>
        <member name="M:Westwind.Utilities.SerializationUtils.SerializeObject(System.Object,System.String@,System.Boolean)">
            <summary>
            Serializes an object into a string variable for easy 'manual' serialization
            </summary>
            <param name="instance"></param>
            <param name="xmlResultString">Out parm that holds resulting XML string</param>
            <param name="throwExceptions">If true causes exceptions rather than returning false</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.SerializationUtils.SerializeObject(System.Object,System.Byte[]@,System.Boolean)">
            <summary>
            Serializes an object instance to a file.
            </summary>
            <param name="instance">the object instance to serialize</param>
            <param name="Filename"></param>
            <param name="BinarySerialization">determines whether XML serialization or binary serialization is used</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.SerializationUtils.SerializeObjectToString(System.Object,System.Boolean)">
            <summary>
            Serializes an object to an XML string. Unlike the other SerializeObject overloads
            this methods *returns a string* rather than a bool result!
            </summary>
            <param name="instance"></param>
            <param name="throwExceptions">Determines if a failure throws or returns null</param>
            <returns>
            null on error otherwise the Xml String.         
            </returns>
            <remarks>
            If null is passed in null is also returned so you might want
            to check for null before calling this method.
            </remarks>
        </member>
        <member name="M:Westwind.Utilities.SerializationUtils.DeSerializeObject(System.String,System.Type,System.Boolean)">
            <summary>
            Deserializes an object from file and returns a reference.
            </summary>
            <param name="fileName">name of the file to serialize to</param>
            <param name="objectType">The Type of the object. Use typeof(yourobject class)</param>
            <param name="binarySerialization">determines whether we use Xml or Binary serialization</param>
            <returns>Instance of the deserialized object or null. Must be cast to your object type</returns>
        </member>
        <member name="M:Westwind.Utilities.SerializationUtils.DeSerializeObject(System.String,System.Type,System.Boolean,System.Boolean)">
            <summary>
            Deserializes an object from file and returns a reference.
            </summary>
            <param name="fileName">name of the file to serialize to</param>
            <param name="objectType">The Type of the object. Use typeof(yourobject class)</param>
            <param name="binarySerialization">determines whether we use Xml or Binary serialization</param>
            <param name="throwExceptions">determines whether failure will throw rather than return null on failure</param>
            <returns>Instance of the deserialized object or null. Must be cast to your object type</returns>
        </member>
        <member name="M:Westwind.Utilities.SerializationUtils.DeSerializeObject(System.Xml.XmlReader,System.Type)">
            <summary>
            Deserialize an object from an XmlReader object.
            </summary>
            <param name="reader"></param>
            <param name="objectType"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.SerializationUtils.DeSerializeObject(System.Byte[],System.Type,System.Boolean)">
            <summary>
            Deseializes a binary serialized object from  a byte array
            </summary>
            <param name="buffer"></param>
            <param name="objectType"></param>
            <param name="throwExceptions"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.SerializationUtils.ObjectToString(System.Object,System.String,Westwind.Utilities.ObjectToStringTypes)">
            <summary>
            Returns a string of all the field value pairs of a given object.
            Works only on non-statics.
            </summary>
            <param name="instanc"></param>
            <param name="separator"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.ShellUtils">
            <summary>
            Windows specific shell utility functions 
            </summary>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.OpenFileInExplorer(System.String)">
            <summary>
            Opens a File or Folder in Explorer. If the path is a file
            Explorer is opened in the parent folder with the file selected
            </summary>
            <param name="filename"></param>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.ExecuteProcess(System.String,System.String,System.Int32,System.Diagnostics.ProcessWindowStyle)">
            <summary>
            Executes a Windows process with given command line parameters
            </summary>
            <param name="executable">Executable to run</param>
            <param name="arguments">Command Line Parameters passed to executable</param>
            <param name="timeoutMs">Timeout of the process in milliseconds. Pass -1 to wait forever. Pass 0 to not wait.</param>
            <param name="windowStyle">Hidden, Normal etc.</param>
            <returns>process exit code or 0 if run and forget. 1460 for time out. -1 on error</returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.ExecuteProcess(System.String,System.String,System.Int32,System.Text.StringBuilder@,System.Diagnostics.ProcessWindowStyle)">
             <summary>
             Executes a Windows process with given command line parameters
             and captures console output into a string.
            
             Writes command output to the output StringBuilder
             from StdOut and StdError.
             </summary>
             <param name="executable">Executable to run</param>
             <param name="arguments">Command Line Parameters passed to executable</param>
             <param name="timeoutMs">Timeout of the process in milliseconds. Pass -1 to wait forever. Pass 0 to not wait.</param>
             <param name="output">Pass in a string reference that will receive StdOut and StdError output</param>
             <param name="windowStyle">Hidden, Normal, etc.</param>
             <returns>process exit code or 0 if run and forget. 1460 for time out. -1 on error</returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.ExecuteProcess(System.String,System.String,System.Int32,System.Action{System.String},System.Diagnostics.ProcessWindowStyle)">
             <summary>
             Executes a Windows process with given command line parameters
             and captures console output into a string.
            
             Pass in a String Action that receives output from
             StdOut and StdError as it is written (one line at a time).
             </summary>
             <param name="executable">Executable to run</param>
             <param name="arguments">Command Line Parameters passed to executable</param>
             <param name="timeoutMs">Timeout of the process in milliseconds. Pass -1 to wait forever. Pass 0 to not wait.</param>
             <param name="writeDelegate">Delegate to let you capture streaming output of the executable to stdout and stderror.</param>
             <param name="windowStyle">Hidden, Normal etc.</param>
             <returns>process exit code or 0 if run and forget. 1460 for time out. -1 on error</returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.ExecuteProcess(System.String,System.String,System.Int32,System.Text.StringBuilder@,System.Action{System.String},System.Diagnostics.ProcessWindowStyle)">
             <summary>
             Executes a Windows process with given command line parameters
             and captures console output into a string.
            
             Writes original output into the application Console which you can
             optionally redirect to capture output from the command line
             operation using `Console.SetOut` or `Console.SetError`.
             </summary>
             <param name="executable">Executable to run</param>
             <param name="arguments"></param>
             <param name="timeoutMs">Timeout of the process in milliseconds. Pass -1 to wait forever. Pass 0 to not wait.</param>
             <param name="output">StringBuilder that will receive StdOut and StdError output</param>
             <param name="writeDelegate">Action to capture stdout and stderror output for you to handle</param>
             <param name="windowStyle"></param>
             <returns>process exit code or 0 if run and forget. 1460 for time out. -1 on error</returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.OpenTerminal(System.String,Westwind.Utilities.TerminalModes)">
            <summary>
            Opens a Terminal window in the specified folder
            </summary>
            <param name="folder"></param>
            <param  name="mode">Powershell, Command or Bash</param>
            <returns>false if process couldn't be started - most likely invalid link</returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.GoUrl(System.String)">
            <summary>
            Uses the Shell Extensions to launch a program based on URL moniker or file name
            Basically a wrapper around ShellExecute
            </summary>
            <param name="url">Any URL Moniker that the Windows Shell understands (URL, Word Docs, PDF, Email links etc.)</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.ShowString(System.String,System.String)">
            <summary>
            Displays a string in in a browser as HTML. Optionally
            provide an alternate extension to display in the appropriate
            text viewer (ie. "txt" likely shows in NotePad)
            </summary>
            <param name="text"></param>
            <param name="extension"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.ShowHtml(System.String)">
            <summary>
            Shows a string as HTML
            </summary>
            <param name="htmlString"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.ShowText(System.String)">
            <summary>
            Displays a large Text string as a text file in the
            systems' default text viewer (ie. NotePad)
            </summary>
            <param name="TextString"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.HttpGet(System.String)">
            <summary>
            Simple method to retrieve HTTP content from the Web quickly
            </summary>
            <param name="url">Url to access</param>        
            <returns>Http response text or null</returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.HttpGet(System.String,System.String@)">
            <summary>
            Simple method to retrieve HTTP content from the Web quickly
            </summary>
            <param name="url">Url to access</param>
            <param name="errorMessage"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.HttpGetBytes(System.String)">
            <summary>
            Retrieves a buffer of binary data from a URL using
            a plain HTTP Get.
            </summary>
            <param name="url">Url to access</param>
            <returns>Response bytes or null on error</returns>
        </member>
        <member name="M:Westwind.Utilities.ShellUtils.HttpGetBytes(System.String,System.String@)">
            <summary>
            Retrieves a buffer of binary data from a URL using
            a plain HTTP Get.
            </summary>
            <param name="url">Url to access</param>
            <param name="errorMessage">ref parm to receive an error message</param>
            <returns>response bytes or null on error</returns>
        </member>
        <member name="T:Westwind.Utilities.StringUtils">
            <summary>
            String utility class that provides a host of string related operations
            </summary>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.TrimStart(System.String,System.String,System.Boolean)">
            <summary>
            Trims a sub string from a string. 
            </summary>
            <param name="text"></param>
            <param name="textToTrim"></param>
            <returns></returns>        
        </member>
        <member name="M:Westwind.Utilities.StringUtils.TrimTo(System.String,System.Int32)">
            <summary>
            Trims a string to a specific number of max characters
            </summary>
            <param name="value"></param>
            <param name="charCount"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.Replicate(System.String,System.Int32)">
            <summary>
            Replicates an input string n number of times
            </summary>
            <param name="input"></param>
            <param name="charCount"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.Replicate(System.Char,System.Int32)">
            <summary>
            Replicates a character n number of times and returns a string
            </summary>
            <param name="charCount"></param>
            <param name="character"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.IndexOfNth(System.String,System.String,System.Int32,System.StringComparison)">
            <summary>
            Finds the nth index of string in a string
            </summary>
            <param name="source"></param>
            <param name="matchString"></param>
            <param name="stringInstance"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.IndexOfNth(System.String,System.Char,System.Int32)">
            <summary>
            Returns the nth Index of a character in a string
            </summary>
            <param name="source"></param>
            <param name="matchChar"></param>
            <param name="charInstance"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.LastIndexOfNth(System.String,System.String,System.Int32,System.StringComparison)">
            <summary>
            Finds the nth index of strting in a string
            </summary>
            <param name="source"></param>
            <param name="matchString"></param>
            <param name="charInstance"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.LastIndexOfNth(System.String,System.Char,System.Int32)">
            <summary>
            Finds the nth index of in a string from the end.
            </summary>
            <param name="source"></param>
            <param name="matchChar"></param>
            <param name="charInstance"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.ProperCase(System.String)">
            <summary>
            Return a string in proper Case format
            </summary>
            <param name="Input"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.ToCamelCase(System.String)">
            <summary>
            Takes a phrase and turns it into CamelCase text.
            White Space, punctuation and separators are stripped
            </summary>
            <param name="phrase">Text to convert to CamelCase</param>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.FromCamelCase(System.String)">
            <summary>
            Tries to create a phrase string from CamelCase text.
            Will place spaces before capitalized letters.
            
            Note that this method may not work for round tripping 
            ToCamelCase calls, since ToCamelCase strips more characters
            than just spaces.
            </summary>
            <param name="camelCase"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.ExtractString(System.String,System.String,System.String,System.Boolean,System.Boolean,System.Boolean)">
            <summary>
            Extracts a string from between a pair of delimiters. Only the first 
            instance is found.
            </summary>
            <param name="source">Input String to work on</param>
            <param name="beginDelim">Beginning delimiter</param>
            <param name="endDelim">ending delimiter</param>
            <param name="caseSensitive">Determines whether the search for delimiters is case sensitive</param>        
            <param name="allowMissingEndDelimiter"></param>
            <param name="returnDelimiters"></param>
            <returns>Extracted string or string.Empty on no match</returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.ReplaceStringInstance(System.String,System.String,System.String,System.Int32,System.Boolean)">
            <summary>
            String replace function that supports replacing a specific instance with 
            case insensitivity
            </summary>
            <param name="origString">Original input string</param>
            <param name="findString">The string that is to be replaced</param>
            <param name="replaceWith">The replacement string</param>
            <param name="instance">Instance of the FindString that is to be found. 1 based. If Instance = -1 all are replaced</param>
            <param name="caseInsensitive">Case insensitivity flag</param>
            <returns>updated string or original string if no matches</returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.ReplaceString(System.String,System.String,System.String,System.Boolean)">
            <summary>
            Replaces a substring within a string with another substring with optional case sensitivity turned off.
            </summary>
            <param name="origString">String to do replacements on</param>
            <param name="findString">The string to find</param>
            <param name="replaceString">The string to replace found string wiht</param>
            <param name="caseInsensitive">If true case insensitive search is performed</param>
            <returns>updated string or original string if no matches</returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.Truncate(System.String,System.Int32)">
            <summary>
            Truncate a string to maximum length.
            </summary>
            <param name="text">Text to truncate</param>
            <param name="maxLength">Maximum length</param>
            <returns>Trimmed string</returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.TextAbstract(System.String,System.Int32)">
            <summary>
            Returns an abstract of the provided text by returning up to Length characters
            of a text string. If the text is truncated a ... is appended.
            </summary>
            <param name="text">Text to abstract</param>
            <param name="length">Number of characters to abstract to</param>
            <returns>string</returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.TerminateString(System.String,System.String)">
            <summary>
            Terminates a string with the given end string/character, but only if the
            text specified doesn't already exist and the string is not empty.
            </summary>
            <param name="value">String to terminate</param>
            <param name="terminator">String to terminate the text string with</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.Right(System.String,System.Int32)">
            <summary>
            Returns the number or right characters specified
            </summary>
            <param name="full">full string to work with</param>
            <param name="rightCharCount">number of right characters to return</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.Inlist(System.String,System.String[])">
            <summary>
            Determines if a string is contained in a list of other strings
            </summary>
            <param name="s"></param>
            <param name="list"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.Contains(System.String,System.String,System.StringComparison)">
            <summary>
            String.Contains() extension method that allows to specify case
            </summary>
            <param name="text">Input text</param>
            <param name="searchFor">text to search for</param>
            <param name="stringComparison">Case sensitivity options</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.GetLines(System.String,System.Int32)">
            <summary>
            Parses a string into an array of lines broken
            by \r\n or \n
            </summary>
            <param name="s">String to check for lines</param>
            <param name="maxLines">Optional - max number of lines to return</param>
            <returns>array of strings, or null if the string passed was a null</returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.CountLines(System.String)">
            <summary>
            Returns a line count for a string
            </summary>
            <param name="s">string to count lines for</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.StripNonNumber(System.String)">
            <summary>
            Strips all non digit values from a string and only
            returns the numeric string.
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.TokenizeString(System.String@,System.String,System.String,System.String)">
            <summary>
            Tokenizes a string based on a start and end string. Replaces the values with a token
            text (#@#1#@# for example).
            
            You can use Detokenize to get the original values back
            </summary>
            <param name="text"></param>
            <param name="start"></param>
            <param name="end"></param>
            <param name="replaceDelimiter"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.DetokenizeString(System.String,System.Collections.Generic.List{System.String},System.String)">
            <summary>
            Detokenizes a string tokenized with TokenizeString. Requires the collection created
            by detokenization
            </summary>
            <param name="text"></param>
            <param name="tokens"></param>
            <param name="replaceDelimiter"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.ParseInt(System.String,System.Int32,System.IFormatProvider)">
            <summary>
            Parses an string into an integer. If the text can't be parsed
            a default text is returned instead
            </summary>
            <param name="input">Input numeric string to be parsed</param>
            <param name="defaultValue">Optional default text if parsing fails</param>
            <param name="formatProvider">Optional NumberFormat provider. Defaults to current culture's number format</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.ParseDecimal(System.String,System.Decimal,System.IFormatProvider)">
            <summary>
            Parses an string into an decimal. If the text can't be parsed
            a default text is returned instead
            </summary>
            <param name="input"></param>
            <param name="defaultValue"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.NewStringId">
            <summary>
            Creates short string id based on a GUID hashcode.
            Not guaranteed to be unique across machines, but unlikely
            to duplicate in medium volume situations.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.RandomString(System.Int32,System.Boolean)">
            <summary>
            Creates a new random string of upper, lower case letters and digits.
            Very useful for generating random data for storage in test data.
            </summary>
            <param name="size">The number of characters of the string to generate</param>
            <returns>randomized string</returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.UrlEncode(System.String)">
            <summary>
            UrlEncodes a string without the requirement for System.Web
            </summary>
            <param name="String"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.UrlEncodePathSafe(System.String)">
            <summary>
            Encodes a few additional characters for use in paths
            Encodes: . #
            </summary>
            <param name="text"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.UrlDecode(System.String)">
            <summary>
            UrlDecodes a string without requiring System.Web
            </summary>
            <param name="text">String to decode.</param>
            <returns>decoded string</returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.GetUrlEncodedKey(System.String,System.String)">
            <summary>
            Retrieves a text by key from a UrlEncoded string.
            </summary>
            <param name="urlEncoded">UrlEncoded String</param>
            <param name="key">Key to retrieve text for</param>
            <returns>returns the text or "" if the key is not found or the text is blank</returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.SetUrlEncodedKey(System.String,System.String,System.String)">
            <summary>
            Allows setting of a text in a UrlEncoded string. If the key doesn't exist
            a new one is set, if it exists it's replaced with the new text.
            </summary>
            <param name="urlEncoded">A UrlEncoded string of key text pairs</param>
            <param name="key"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.BinHexToBinary(System.String)">
            <summary>
            Turns a BinHex string that contains raw byte values
            into a byte array
            </summary>
            <param name="hex">BinHex string (just two byte hex digits strung together)</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.BinaryToBinHex(System.Byte[])">
            <summary>
            Converts a byte array into a BinHex string.
            BinHex is two digit hex byte values squished together
            into a string.
            </summary>
            <param name="data">Raw data to send</param>
            <returns>BinHex string or null if input is null</returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.StringToBytes(System.String,System.Text.Encoding)">
            <summary>
            Converts a string into bytes for storage in any byte[] types
            buffer or stream format (like MemoryStream).
            </summary>
            <param name="text"></param>
            <param name="encoding">The character encoding to use. Defaults to Unicode</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.BytesToString(System.Byte[],System.Text.Encoding)">
            <summary>
            Converts a byte array to a stringUtils
            </summary>
            <param name="buffer">raw string byte data</param>
            <param name="encoding">Character encoding to use. Defaults to Unicode</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.Base36Encode(System.Int64)">
            <summary>
            Encodes an integer into a string by mapping to alpha and digits (36 chars)
            chars are embedded as lower case
            
            Example: 4zx12ss
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.Base36Decode(System.String)">
            <summary>
            Decodes a base36 encoded string to an integer
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.NormalizeLineFeeds(System.String,Westwind.Utilities.LineFeedTypes)">
            <summary>
            Normalizes linefeeds to the appropriate 
            </summary>
            <param name="text">The text to fix up</param>
            <param name="type">Type of linefeed to fix up to</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.NormalizeIndentation(System.String)">
            <summary>
            Strips any common white space from all lines of text that have the same
            common white space text. Effectively removes common code indentation from
            code blocks for example so you can get a left aligned code snippet.
            </summary>
            <param name="code"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.LogString(System.String,System.String,System.Text.Encoding)">
            <summary>
            Simple Logging method that allows quickly writing a string to a file
            </summary>
            <param name="output"></param>
            <param name="filename"></param>
            <param name="encoding">if not specified used UTF-8</param>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.StringToStream(System.String,System.Text.Encoding)">
            <summary>
            Creates a Stream from a string. Internally creates
            a memory stream and returns that.
            </summary>
            <param name="text"></param>
            <param name="encoding"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.GetProperty(System.String,System.String)">
            <summary>
            Retrieves a text from an XML-like string
            </summary>
            <param name="propertyString"></param>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.StringUtils.SetProperty(System.String,System.String,System.String)">
            <summary>
            
            </summary>
            <param name="propertyString"></param>
            <param name="key"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.TimeUtils">
            <summary>
            Time Utilities class provides date and time related routines.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.FriendlyDateString(System.DateTime,System.Boolean)">
            <summary>
            Displays a date in friendly format.
            </summary>
            <param name="date"></param>
            <param name="showTime"></param>
            <returns>Today,Yesterday,Day of week or a string day (Jul 15, 2008)</returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.ShortDateString(System.DateTime,System.Boolean)">
            <summary>
            Returns a short date time string 
            </summary>
            <param name="date"></param>
            <param name="showTime"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.ShortDateString(System.Nullable{System.DateTime},System.Boolean)">
            <summary>
            Returns a short date time string 
            </summary>
            <param name="date"></param>
            <param name="ShowTime"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.FriendlyElapsedTimeString(System.Int32)">
            <summary>
            Displays a number of milliseconds as friendly seconds, hours, minutes 
            Pass -1 to get a blank date.
            </summary>
            <param name="milliSeconds">the elapsed milliseconds to display time for</param>           
            <returns>string in format of just now or 1m ago, 2h ago</returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.FriendlyElapsedTimeString(System.TimeSpan)">
            <summary>
            Displays the elapsed time  friendly seconds, hours, minutes 
            </summary>
            <param name="elapsed">Timespan of elapsed time</param>
            <returns>string in format of just now or 1m ago, 2h ago</returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.FractionalHoursToString(System.Decimal,System.String)">
            <summary>
            Converts a fractional hour value like 1.25 to 1:15  hours:minutes format
            </summary>
            <param name="hours">Decimal hour value</param>
            <param name="format">An optional format string where {0} is hours and {1} is minutes (ie: "{0}h:{1}m").</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.FractionalHoursToString(System.Decimal)">
            <summary>
            Converts a fractional hour value like 1.25 to 1:15  hours:minutes format
            </summary>
            <param name="hours">Decimal hour value</param>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.RoundDateToMinuteInterval(System.Decimal,System.Int32,Westwind.Utilities.RoundingDirection)">
            <summary>
            Rounds an hours value to a minute interval
            0 means no rounding
            </summary>
            <param name="minuteInterval">Minutes to round up or down to</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.RoundDateToMinuteInterval(System.DateTime,System.Int32,Westwind.Utilities.RoundingDirection)">
            <summary>
            Rounds a date value to a given minute interval
            </summary>
            <param name="time">Original time value</param>
            <param name="minuteInterval">Number of minutes to round up or down to</param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.DateTimeFromDateAndTime(System.String,System.String)">
            <summary>
            Creates a DateTime value from date and time input values
            </summary>
            <param name="Date"></param>
            <param name="Time"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.DateTimeFromDateAndTime(System.DateTime,System.String)">
            <summary>
            Creates a DateTime Value from a DateTime date and a string time value.
            </summary>
            <param name="Date"></param>
            <param name="Time"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.MimeDateTime(System.DateTime)">
            <summary>
            Converts the passed date time value to Mime formatted time string
            </summary>
            <param name="Time"></param>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.Truncate(System.DateTime,Westwind.Utilities.DateTimeResolution)">
            <summary>
            Truncates a DateTime value to the nearest partial value.
            </summary>
            <remarks>
            From: http://stackoverflow.com/questions/1004698/how-to-truncate-milliseconds-off-of-a-net-datetime        
            </remarks>
            <param name="date"></param>
            <param name="resolution"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.ToTimeZoneTime(System.DateTime,System.String)">
            <summary>
            Returns TimeZone adjusted time for a given from a Utc or local time.
            Date is first converted to UTC then adjusted.
            </summary>
            <param name="time"></param>
            <param name="timeZoneId"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.TimeUtils.ToTimeZoneTime(System.DateTime,System.TimeZoneInfo)">
            <summary>
            Returns TimeZone adjusted time for a given from a Utc or local time.
            Date is first converted to UTC then adjusted.
            </summary>
            <param name="time"></param>
            <param name="timeZoneId"></param>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.RoundingDirection">
            <summary>
            Determines how date time values are rounded
            </summary>
        </member>
        <member name="T:Westwind.Utilities.WindowsUtils">
            <summary>
            Windows specific system and information helpers
            Helper class that provides Windows and .NET Version numbers.    
            </summary>
        </member>
        <member name="P:Westwind.Utilities.WindowsUtils.WinMajorVersion">
            <summary>
            Returns the Windows major version number for this computer.
            based on this: http://stackoverflow.com/questions/21737985/windows-version-in-c-sharp/37716269#37716269
            </summary>
        </member>
        <member name="P:Westwind.Utilities.WindowsUtils.WinMinorVersion">
            <summary>
                Returns the Windows minor version number for this computer.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.WindowsUtils.WinBuildVersion">
            <summary>
                Returns the Windows minor version number for this computer.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.WindowsUtils.WinBuildLabVersion">
            <summary>
                Returns the Windows minor version number for this computer.
            </summary>
        </member>
        <member name="P:Westwind.Utilities.WindowsUtils.IsServer">
            <summary>
            Returns whether or not the current computer is a server or not.
            </summary>
        </member>
        <member name="M:Westwind.Utilities.WindowsUtils.GetDotnetVersion">
            <summary> 
            Returns the .NET framework version installed on the machine
            as a string  of 4.x.y version
            </summary>
            <remarks>Minimum version supported is 4.0</remarks>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.WindowsUtils.GetWindowsVersion">
            <summary>
            Returns a Windows Version string including build number
            </summary>
            <returns></returns>
        </member>
        <member name="T:Westwind.Utilities.XmlUtils">
            <summary>
            String utility class that provides a host of string related operations
            </summary>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.XmlString(System.String,System.Boolean)">
             <summary>
             Turns a string into a properly XML Encoded string.
             Uses simple string replacement.
            
             Also see XmlUtils.XmlString() which uses XElement
             to handle additional extended characters.
             </summary>
             <param name="text">Plain text to convert to XML Encoded string</param>
            <param name="isAttribute">
            If true encodes single and double quotes.
            When embedding element values quotes don't need to be encoded.
            When embedding attributes quotes need to be encoded.
            </param>
            <returns>XML encoded string</returns>
             <exception cref="T:System.InvalidOperationException">Invalid character in XML string</exception>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.GetXmlNode(System.Xml.XmlNode,System.String,System.Xml.XmlNamespaceManager)">
            <summary>
            Retrieves a result string from an XPATH query. Null if not found.
            </summary>
            <param name="node"></param>
            <param name="xPath"></param>
            <param name="ns"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.GetXmlString(System.Xml.XmlNode,System.String,System.Xml.XmlNamespaceManager)">
            <summary>
            Retrieves a result string from an XPATH query. Null if not found.
            </summary>
            <param name="node"></param>
            <param name="xPath"></param>
            <param name="ns"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.GetXmlEnum``1(System.Xml.XmlNode,System.String,System.Xml.XmlNamespaceManager)">
            <summary>
            Gets an Enum value from an xml node. Returns enum
            type value. Either flag or string based keys will work
            </summary>
            <typeparam name="T"></typeparam>
            <param name="node"></param>
            <param name="xPath"></param>
            <param name="ns"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.GetXmlInt(System.Xml.XmlNode,System.String,System.Xml.XmlNamespaceManager)">
            <summary>
            Retrieves a result int value from an XPATH query. 0 if not found.
            </summary>
            <param name="node"></param>
            <param name="XPath"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.GetXmlDecimal(System.Xml.XmlNode,System.String,System.Xml.XmlNamespaceManager)">
            <summary>
            Retrieves a result decimal value from an XPATH query. 0 if not found.
            </summary>
            <param name="node"></param>
            <param name="XPath"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.GetXmlBool(System.Xml.XmlNode,System.String,System.Xml.XmlNamespaceManager)">
            <summary>
            Retrieves a result bool from an XPATH query. false if not found.
            </summary>
            <param name="node"></param>
            <param name="xPath"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.GetXmlDateTime(System.Xml.XmlNode,System.String,System.Xml.XmlNamespaceManager)">
            <summary>
            Retrieves a result DateTime from an XPATH query. 1/1/1900  if not found.
            </summary>
            <param name="node"></param>
            <param name="xPath"></param>
            <param name="ns"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.GetXmlAttributeString(System.Xml.XmlNode,System.String)">
            <summary>
            Gets an attribute by name
            </summary>
            <param name="node"></param>
            <param name="attributeName"></param>
            <returns>value or null if not available</returns>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.GetXmlAttributeInt(System.Xml.XmlNode,System.String,System.Int32)">
            <summary>
            Returns an integer value from an attribute
            </summary>
            <param name="node"></param>
            <param name="attributeName"></param>
            <param name="defaultValue"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.GetXmlAttributeBool(System.Xml.XmlNode,System.String)">
            <summary>
            Returns an bool value from an attribute
            </summary>
            <param name="node"></param>
            <param name="attributeName"></param>
            <param name="defaultValue"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.MapTypeToXmlType(System.Type)">
            <summary>
            Converts a .NET type into an XML compatible type - roughly
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="M:Westwind.Utilities.XmlUtils.CreateXmlNamespaceManager(System.Xml.XmlDocument,System.String)">
            <summary>
            Creates an Xml NamespaceManager for an XML document by looking
            at all of the namespaces defined on the document root element.
            </summary>
            <param name="doc">The XmlDom instance to attach the namespacemanager to</param>
            <param name="defaultNamespace">The prefix to use for prefix-less nodes (which are not supported if any namespaces are used in XmlDoc).</param>
            <returns></returns>
        </member>
        <member name="T:System.IO.MemoryStreamExtensions">
            <summary>
            MemoryStream Extension Methods that provide conversions to and from strings
            </summary>
        </member>
        <member name="M:System.IO.MemoryStreamExtensions.AsString(System.IO.MemoryStream,System.Text.Encoding)">
            <summary>
            Returns the content of the stream as a string
            </summary>
            <param name="ms"></param>
            <param name="encoding"></param>
            <returns></returns>
        </member>
        <member name="M:System.IO.MemoryStreamExtensions.FromString(System.IO.MemoryStream,System.String,System.Text.Encoding)">
            <summary>
            Writes the specified string into the memory stream
            </summary>
            <param name="ms"></param>
            <param name="inputString"></param>
            <param name="encoding"></param>
        </member>
    </members>
</doc>
