/// <summary>
        /// Gets specification attribute collection
        /// </summary>
        /// <returns>Specification attribute collection</returns>
        public static SpecificationAttributeCollection GetSpecificationAttributes()
        {
            DBSpecificationAttributeCollection dbCollection = DBProviderManager <DBSpecificationAttributeProvider> .Provider.GetSpecificationAttributes();

            SpecificationAttributeCollection specificationAttributes = DBMapping(dbCollection);

            return(specificationAttributes);
        }
        /// <summary>
        /// Maps a DBSpecificationAttributeCollection to a SpecificationAttributeCollection
        /// </summary>
        /// <param name="dbCollection">DBSpecificationAttributeCollection</param>
        /// <returns>SpecificationAttributeCollection</returns>
        private static SpecificationAttributeCollection DBMapping(DBSpecificationAttributeCollection dbCollection)
        {
            if (dbCollection == null)
            {
                return(null);
            }

            SpecificationAttributeCollection collection = new SpecificationAttributeCollection();

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

            return(collection);
        }
        /// <summary>
        /// Gets specification attribute collection
        /// </summary>
        /// <returns>Specification attribute collection</returns>
        public override DBSpecificationAttributeCollection GetSpecificationAttributes()
        {
            DBSpecificationAttributeCollection specificationAttributeCollection = new DBSpecificationAttributeCollection();
            Database  db        = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand dbCommand = db.GetStoredProcCommand("Nop_SpecificationAttributeLoadAll");

            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                while (dataReader.Read())
                {
                    DBSpecificationAttribute specificationAttribute = GetSpecificationAttributeFromReader(dataReader);
                    specificationAttributeCollection.Add(specificationAttribute);
                }
            }

            return(specificationAttributeCollection);
        }
        /// <summary>
        /// Gets specification attribute collection
        /// </summary>
        /// <param name="languageId">Language identifier</param>
        /// <returns>Specification attribute collection</returns>
        public override DBSpecificationAttributeCollection GetSpecificationAttributes(int languageId)
        {
            var       result    = new DBSpecificationAttributeCollection();
            Database  db        = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand dbCommand = db.GetStoredProcCommand("Nop_SpecificationAttributeLoadAll");

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

            return(result);
        }
        /// <summary>
        /// Gets specification attribute collection
        /// </summary>
        /// <returns>Specification attribute collection</returns>
        public override DBSpecificationAttributeCollection GetSpecificationAttributes()
        {
            DBSpecificationAttributeCollection specificationAttributeCollection = new DBSpecificationAttributeCollection();
            Database db = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand dbCommand = db.GetStoredProcCommand("Nop_SpecificationAttributeLoadAll");
            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                while (dataReader.Read())
                {
                    DBSpecificationAttribute specificationAttribute = GetSpecificationAttributeFromReader(dataReader);
                    specificationAttributeCollection.Add(specificationAttribute);
                }
            }

            return specificationAttributeCollection;
        }