/// <summary>
        /// Gets specification attribute option collection
        /// </summary>
        /// <param name="specificationAttributeID">Specification attribute unique identifier</param>
        /// <returns>Specification attribute option collection</returns>
        public override DBSpecificationAttributeOptionCollection GetSpecificationAttributeOptionsBySpecificationAttributeID(int specificationAttributeID)
        {
            DBSpecificationAttributeOptionCollection saoCol = new DBSpecificationAttributeOptionCollection();

            if (specificationAttributeID == 0)
            {
                return(saoCol);
            }

            Database  db        = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand dbCommand = db.GetStoredProcCommand("Nop_SpecificationAttributeOptionLoadBySpecificationAttributeID");

            db.AddInParameter(dbCommand, "SpecificationAttributeID", DbType.Int32, specificationAttributeID);

            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                while (dataReader.Read())
                {
                    DBSpecificationAttributeOption sao = GetSpecificationAttributeOptionFromReader(dataReader);
                    saoCol.Add(sao);
                }
            }

            return(saoCol);
        }
        /// <summary>
        /// Gets specification attribute option collection
        /// </summary>
        /// <param name="specificationAttributeId">Specification attribute unique identifier</param>
        /// <param name="languageId">Language identifier</param>
        /// <returns>Specification attribute option collection</returns>
        public override DBSpecificationAttributeOptionCollection GetSpecificationAttributeOptionsBySpecificationAttributeId(int specificationAttributeId, int languageId)
        {
            var result = new DBSpecificationAttributeOptionCollection();

            if (specificationAttributeId == 0)
            {
                return(result);
            }

            Database  db        = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand dbCommand = db.GetStoredProcCommand("Nop_SpecificationAttributeOptionLoadBySpecificationAttributeID");

            db.AddInParameter(dbCommand, "SpecificationAttributeID", DbType.Int32, specificationAttributeId);
            db.AddInParameter(dbCommand, "LanguageID", DbType.Int32, languageId);

            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                while (dataReader.Read())
                {
                    var item = GetSpecificationAttributeOptionFromReader(dataReader);
                    result.Add(item);
                }
            }

            return(result);
        }
        /// <summary>
        /// Gets specification attribute option collection
        /// </summary>
        /// <returns>Specification attribute option collection</returns>
        public static SpecificationAttributeOptionCollection GetSpecificationAttributeOptions()
        {
            DBSpecificationAttributeOptionCollection dbCollection = DBProviderManager <DBSpecificationAttributeProvider> .Provider.GetSpecificationAttributeOptions();

            SpecificationAttributeOptionCollection specificationAttributeOptions = DBMapping(dbCollection);

            return(specificationAttributeOptions);
        }
        /// <summary>
        /// Maps a DBSpecificationAttributeOptionCollection to a SpecificationAttributeOptionCollections
        /// </summary>
        /// <param name="dbCollection">DBSpecificationAttributeOptionCollection</param>
        /// <returns>SpecificationAttributeOptionCollection</returns>
        private static SpecificationAttributeOptionCollection DBMapping(DBSpecificationAttributeOptionCollection dbCollection)
        {
            if (dbCollection == null)
            {
                return(null);
            }

            SpecificationAttributeOptionCollection collection = new SpecificationAttributeOptionCollection();

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

            return(collection);
        }
        /// <summary>
        /// Gets a specification attribute option collection
        /// </summary>
        /// <returns>Specification attribute option collection</returns>
        public override DBSpecificationAttributeOptionCollection GetSpecificationAttributeOptions()
        {
            DBSpecificationAttributeOptionCollection saoCol = new DBSpecificationAttributeOptionCollection();
            Database  db        = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand dbCommand = db.GetStoredProcCommand("Nop_SpecificationAttributeOptionLoadAll");

            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                while (dataReader.Read())
                {
                    DBSpecificationAttributeOption sao = GetSpecificationAttributeOptionFromReader(dataReader);
                    saoCol.Add(sao);
                }
            }

            return(saoCol);
        }
        /// <summary>
        /// Gets specification attribute option collection
        /// </summary>
        /// <param name="specificationAttributeID">Specification attribute unique identifier</param>
        /// <returns>Specification attribute option collection</returns>
        public override DBSpecificationAttributeOptionCollection GetSpecificationAttributeOptionsBySpecificationAttributeID(int specificationAttributeID)
        {
            DBSpecificationAttributeOptionCollection saoCol = new DBSpecificationAttributeOptionCollection();
            if (specificationAttributeID == 0)
                return saoCol;

            Database db = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand dbCommand = db.GetStoredProcCommand("Nop_SpecificationAttributeOptionLoadBySpecificationAttributeID");
            db.AddInParameter(dbCommand, "SpecificationAttributeID", DbType.Int32, specificationAttributeID);

            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                while (dataReader.Read())
                {
                    DBSpecificationAttributeOption sao = GetSpecificationAttributeOptionFromReader(dataReader);
                    saoCol.Add(sao);
                }
            }

            return saoCol;
        }
        /// <summary>
        /// Gets a specification attribute option collection
        /// </summary>
        /// <returns>Specification attribute option collection</returns>
        public override DBSpecificationAttributeOptionCollection GetSpecificationAttributeOptions()
        {
            DBSpecificationAttributeOptionCollection saoCol = new DBSpecificationAttributeOptionCollection();
            Database db = NopSqlDataHelper.CreateConnection(_sqlConnectionString);
            DbCommand dbCommand = db.GetStoredProcCommand("Nop_SpecificationAttributeOptionLoadAll");
            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                while (dataReader.Read())
                {
                    DBSpecificationAttributeOption sao = GetSpecificationAttributeOptionFromReader(dataReader);
                    saoCol.Add(sao);
                }
            }

            return saoCol;
        }