public System.DateTime GetEntGeoDBFeatureClassLastUpdate(string FeatureClassName, string ServerName, string DatabaseName, string UserName)
        {
            PDX.BTS.DataMaintenance.MaintTools.ParameterManager parameterManager = null;

              try
              {
            //  Instantiate the Parameter Manager Object that will be used to determine the User Password.
            parameterManager = new PDX.BTS.DataMaintenance.MaintTools.ParameterManager();
            parameterManager.Initialize(_parameterTableName, _parameterDatabaseConnectionString);

            //  Make sure the Parameter Manager was initialized successfully before moving on.
            if (!parameterManager.IsInitialized())
            {
              //  Let the user know that this process failed.
              if (ErrorMessage != null)
              {
            ErrorMessage("Could not Initialize the Parameter Manager. The FeatureClassUtilities.GetEntGeoDBFeatureClassLastUpdate() Method failed!");
              }

              //  Return a January 1st, 1900 to the calling routine to indicate that this process failed.
              return new DateTime(1900, 1, 1);

            }

            //  Determine the Password for the the User in the specified Database.
            string userPassword = parameterManager.ReadParameter(UserName + "_Password");

            //  Call the Overload of this method that requires a Database User Name and Password as input parameters using the passed User Name
            //  and the Password that was just determined
            return GetEntGeoDBFeatureClassLastUpdate(FeatureClassName, ServerName, DatabaseName, UserName, userPassword);

              }
              catch (System.Exception caught)
              {
            //  Determine the Line Number from which the exception was thrown.
            System.Diagnostics.StackTrace stackTrace = new System.Diagnostics.StackTrace(caught, true);
            System.Diagnostics.StackFrame stackFrame = stackTrace.GetFrame(stackTrace.FrameCount - 1);
            int lineNumber = stackFrame.GetFileLineNumber();

            //  Let the user know that this process failed.
            if (ErrorMessage != null)
            {
              ErrorMessage("The FeatureClassUtilities.GetEntGeoDBFeatureClassLastUpdate() Method failed with error message - " + caught.Message + " (Line:  " + lineNumber.ToString() + ")!");
            }

            //  Return a January 1st, 1900 to the calling routine to indicate that this process failed.
            return new DateTime(1900, 1, 1);

              }
              finally
              {
            //  If the CGIS Data Maintenance Parameter Manager Object was instantiated, close it.
            if (parameterManager != null)
            {
              parameterManager = null;
            }

              }
        }
        public string RetrieveParameterValue(string ParameterName, string ParameterTableName, string ParameterConnectionString, bool DecryptValue = true)
        {
            PDX.BTS.DataMaintenance.MaintTools.ParameterManager parameterManager = null;

              try
              {
            //  Instantiate a Parameter Manager Object.
            parameterManager = new PDX.BTS.DataMaintenance.MaintTools.ParameterManager();
            parameterManager.Initialize(ParameterTableName, ParameterConnectionString);

            //  Make sure the Parameter Manager was initiailized successfully before moving on.
            if (!parameterManager.IsInitialized())
            {
              //  Let the User knwo that the Parameter manager Could not be initialized.
              if (ErrorMessage != null)
              {
            ErrorMessage("Could not initialize a Parameter Manager Object on Table - " + ParameterTableName + " using connection string - " + ParameterConnectionString + ".  The MaintTools.GeneralUtilities.RetrieveParameterValue Method() Failed!");
              }

              //  Return NULL to the calling method to indicate that this method failed.
              return null;

            }

            //  Retrieve the value via the overload of this method that takes a Parameter Manager Object as a parameter.
            return RetrieveParameterValue(ParameterName, parameterManager, DecryptValue);

              }
              catch (System.Exception caught)
              {
            //  Determine the Line Number from which the exception was thrown.
            System.Diagnostics.StackTrace stackTrace = new System.Diagnostics.StackTrace(caught, true);
            System.Diagnostics.StackFrame stackFrame = stackTrace.GetFrame(stackTrace.FrameCount - 1);
            int lineNumber = stackFrame.GetFileLineNumber();

            //  Let the User know that this method failed.
            if (ErrorMessage != null)
            {
              ErrorMessage("The RetrieveParameterValue() Method failed with error message - " + caught.Message + " (Line:  " + lineNumber.ToString() + ")!");
            }

            //  Return a NULL String to the calling Method to indicate that this Method failed.
            return null;

              }
              finally
              {

              }
        }