/// <summary>
        /// Purpose: Initializes class members.
        /// </summary>
        private void InitClass()
        {
            // create all the objects and initialize other members.
            _mainConnection = new SqlConnection();
            _mainConnectionIsCreatedLocal = true;
            _mainConnectionProvider = null;
            AppSettingsReader _configReader = new AppSettingsReader();

            // Set connection string of the sqlconnection object
            _mainConnection.ConnectionString =
                        _configReader.GetValue("Main.ConnectionString", typeof(string)).ToString();
            _isDisposed = false;
        }
 /// <summary>
 /// Purpose: Implements the Dispose functionality.
 /// </summary>
 protected virtual void Dispose(bool isDisposing)
 {
     // Check to see if Dispose has already been called.
     if(!_isDisposed)
     {
         if(isDisposing)
         {
             // Dispose managed resources.
             if(_mainConnectionIsCreatedLocal)
             {
                 // Object is created in this class, so destroy it here.
                 _mainConnection.Close();
                 _mainConnection.Dispose();
                 _mainConnectionIsCreatedLocal = false;
             }
             _mainConnectionProvider = null;
             _mainConnection = null;
         }
     }
     _isDisposed = true;
 }