/// <summary>
        /// Persists the object.
        /// </summary>
        public virtual void Persist(TransmittalData persistObject, SqlTransaction sqlTrans)
        {
            // create local variable array for the sql parameters
            SqlParameterHash sqlparams = null;
            // Create a local variable for the connection
            SqlConnection cnn = null;

            // Use the parameter overload or create a new instance
            if (sqlTrans == null)
                cnn = new SqlConnection(TransmittalData.GetConnectionString());

            try
            {
                // discover the parameters
                if (persistObject.Persisted)
                    sqlparams =  SqlHelperParameterCache.GetSpParameterSet(TransmittalData.GetConnectionString(), "gsp_UpdateTransmittalData");
                else
                    sqlparams =  SqlHelperParameterCache.GetSpParameterSet(TransmittalData.GetConnectionString(), "gsp_CreateTransmittalData");

                // Store the parameter for the ArmsLengthIndicator attribute.
                sqlparams["@armsLengthIndicator"].Value = persistObject.ArmsLengthIndicator;
                // Store the parameter for the BelowMarketSubordinateFinancingIndicator attribute.
                sqlparams["@belowMarketSubordinateFinancingIndicator"].Value = persistObject.BelowMarketSubordinateFinancingIndicator;
                // Store the parameter for the BuydownRatePercent attribute.
                if (!persistObject.BuydownRatePercentIsNull)
                    sqlparams["@buydownRatePercent"].Value = persistObject.BuydownRatePercent;
                // Store the parameter for the CreditReportAuthorizationIndicator attribute.
                sqlparams["@creditReportAuthorizationIndicator"].Value = persistObject.CreditReportAuthorizationIndicator;
                // Store the parameter for the LenderBranchIdentifier attribute.
                if (!persistObject.LenderBranchIdentifierIsNull)
                    sqlparams["@lenderBranchIdentifier"].Value = persistObject.LenderBranchIdentifier;
                // Store the parameter for the LenderRegistrationIdentifier attribute.
                if (!persistObject.LenderRegistrationIdentifierIsNull)
                    sqlparams["@lenderRegistrationIdentifier"].Value = persistObject.LenderRegistrationIdentifier;
                // Store the parameter for the PropertyAppraisedValueAmount attribute.
                if (!persistObject.PropertyAppraisedValueAmountIsNull)
                    sqlparams["@propertyAppraisedValueAmount"].Value = persistObject.PropertyAppraisedValueAmount;
                // Store the parameter for the PropertyEstimatedValueAmount attribute.
                if (!persistObject.PropertyEstimatedValueAmountIsNull)
                    sqlparams["@propertyEstimatedValueAmount"].Value = persistObject.PropertyEstimatedValueAmount;
                // Store the parameter for the InvestorLoanIdentifier attribute.
                if (!persistObject.InvestorLoanIdentifierIsNull)
                    sqlparams["@investorLoanIdentifier"].Value = persistObject.InvestorLoanIdentifier;
                // Store the parameter for the InvestorInstitutionIdentifier attribute.
                if (!persistObject.InvestorInstitutionIdentifierIsNull)
                    sqlparams["@investorInstitutionIdentifier"].Value = persistObject.InvestorInstitutionIdentifier;
                // Store the parameter for the CommitmentReferenceIdentifier attribute.
                if (!persistObject.CommitmentReferenceIdentifierIsNull)
                    sqlparams["@commitmentReferenceIdentifier"].Value = persistObject.CommitmentReferenceIdentifier;
                // Store the parameter for the ConcurrentOriginationIndicator attribute.
                sqlparams["@concurrentOriginationIndicator"].Value = persistObject.ConcurrentOriginationIndicator;
                // Store the parameter for the ConcurrentOriginationLenderIndicator attribute.
                sqlparams["@concurrentOriginationLenderIndicator"].Value = persistObject.ConcurrentOriginationLenderIndicator;
                // Store the parameter for the RateLockPeriodDays attribute.
                if (!persistObject.RateLockPeriodDaysIsNull)
                    sqlparams["@rateLockPeriodDays"].Value = persistObject.RateLockPeriodDays;
                // Store the parameter for the RateLockRequestedExtensionDays attribute.
                if (!persistObject.RateLockRequestedExtensionDaysIsNull)
                    sqlparams["@rateLockRequestedExtensionDays"].Value = persistObject.RateLockRequestedExtensionDays;
                // Store the parameter for the CaseStateType attribute.
                if (!persistObject.CaseStateTypeIsNull)
                    sqlparams["@caseStateType"].Value = persistObject.CaseStateType;
                // Store the parameter for the RateLockType attribute.
                if (!persistObject.RateLockTypeIsNull)
                    sqlparams["@rateLockType"].Value = persistObject.RateLockType;
                // Store the parameter for the CurrentFirstMortgageHolderType attribute.
                if (!persistObject.CurrentFirstMortgageHolderTypeIsNull)
                    sqlparams["@currentFirstMortgageHolderType"].Value = persistObject.CurrentFirstMortgageHolderType;
                // Store the parameter for the LoanApplicationId attribute.
                sqlparams["@loanApplicationId"].Value = persistObject.LoanApplicationId;
                if (!persistObject.Persisted)
                {
                    // store the create only (historical fixed) values
                }
                else
                {
                    // store the update only (historical changeable) values
                }

                if (sqlTrans == null)
                {
                    // Process using the isolated connection
                    using (cnn)
                    {
                        // open the connection
                        cnn.Open();

                        if (!persistObject.Persisted)
                        {
                            SqlHelper.ExecuteNonQuery(cnn, CommandType.StoredProcedure, "gsp_CreateTransmittalData", sqlparams);
                        }
                        else
                        {
                            SqlHelper.ExecuteNonQuery(cnn, CommandType.StoredProcedure, "gsp_UpdateTransmittalData", sqlparams);
                        }

                        // close the connection after usage
                        cnn.Close();
                    }

                    // nullify the connection var
                    cnn = null;
                }
                else
                {
                    // Process using the shared transaction
                    if (!persistObject.Persisted)
                    {
                        SqlHelper.ExecuteNonQuery(sqlTrans, CommandType.StoredProcedure, "gsp_CreateTransmittalData", sqlparams);
                    }
                    else
                    {
                        SqlHelper.ExecuteNonQuery(sqlTrans, CommandType.StoredProcedure, "gsp_UpdateTransmittalData", sqlparams);
                    }
                }
            }
            catch (SqlException sqlex)
            {
                throw sqlex;
            }
        }
        /// <summary>
        /// Fills a single instance with data based on its primary key values.
        /// </summary>
        public virtual void Fill(TransmittalData transmittaldata, System.Int64 loanApplicationId)
        {
            // create the connection to use
            SqlConnection cnn = new SqlConnection(TransmittalData.GetConnectionString());
            try
            {
                // discover the sql parameters
                SqlParameterHash sqlparams = SqlHelperParameterCache.GetSpParameterSet(TransmittalData.GetConnectionString(), "gsp_SelectTransmittalData");

                using (cnn)
                {
                    // open the connection
                    cnn.Open();

                    // set the parameters
                    sqlparams["@loanApplicationId"].Value = loanApplicationId;

                    // create an instance of the reader to fill.
                    SqlDataReader datareader = SqlHelper.ExecuteReader(cnn, "gsp_SelectTransmittalData", sqlparams);

                    if (datareader.Read())
                        transmittaldata.SetMembers(ref datareader);

                    cnn.Close(); // close the connection
                }

                // nullify the connection var
                cnn = null;
            }
            catch (SqlException sqlex)
            {
                throw sqlex;
            }
        }
 /// <summary>
 /// Persists the object.
 /// </summary>
 public virtual void Persist(TransmittalData persistObject)
 {
     // Make a call to the overloaded method with a null transaction
     Persist(persistObject, null);
 }
        /// <summary>
        /// Deletes the object.
        /// </summary>
        public virtual void Delete(TransmittalData deleteObject)
        {
            // create a new instance of the connection
            SqlConnection cnn = new SqlConnection(TransmittalData.GetConnectionString());
            // create local variable array for the sql parameters
            SqlParameterHash sqlparams = null;

            try
            {
                // discover the parameters
                sqlparams =  SqlHelperParameterCache.GetSpParameterSet(TransmittalData.GetConnectionString(), "gsp_DeleteTransmittalData");

                // Store the parameter for the LoanApplicationId attribute.
                sqlparams["@loanApplicationId"].Value = deleteObject.LoanApplicationId;

                using (cnn)
                {
                    // open the connection
                    cnn.Open();

                    // Execute the stored proc to perform the delete on the instance.
                    SqlHelper.ExecuteNonQuery(cnn, CommandType.StoredProcedure, "gsp_DeleteTransmittalData", sqlparams);

                    // close the connection after usage
                    cnn.Close();
                }

                // nullify the connection var
                cnn = null;
            }
            catch (SqlException sqlex)
            {
                throw sqlex;
            }

            // nullify the reference
            deleteObject = null;
        }