private static CheckoutAttributeCollection DBMapping(DBCheckoutAttributeCollection dbCollection)
        {
            if (dbCollection == null)
            {
                return(null);
            }

            var collection = new CheckoutAttributeCollection();

            foreach (var dbItem in dbCollection)
            {
                var item = DBMapping(dbItem);
                collection.Add(item);
            }

            return(collection);
        }
        /// <summary>
        /// Gets all checkout attributes
        /// </summary>
        /// <param name="languageId">Language identifier</param>
        /// <param name="dontLoadShippableProductRequired">Value indicating whether to do not load attributes for checkout attibutes which require shippable products</param>
        /// <returns>Checkout attribute collection</returns>
        public override DBCheckoutAttributeCollection GetAllCheckoutAttributes(int languageId, bool dontLoadShippableProductRequired)
        {
            var       result    = new DBCheckoutAttributeCollection();
            Database  db        = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand dbCommand = db.GetStoredProcCommand("Nop_CheckoutAttributeLoadAll");

            db.AddInParameter(dbCommand, "LanguageID", DbType.Int32, languageId);
            db.AddInParameter(dbCommand, "DontLoadShippableProductRequired", DbType.Boolean, dontLoadShippableProductRequired);
            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                while (dataReader.Read())
                {
                    var item = GetCheckoutAttributeFromReader(dataReader);
                    result.Add(item);
                }
            }
            return(result);
        }