private void BindData() { Product product = ProductManager.GetProductById(this.ProductId); if (product != null) { pnlData.Visible = true; pnlMessage.Visible = false; ProductSpecificationAttributeCollection productSpecificationAttributes = SpecificationAttributeManager.GetProductSpecificationAttributesByProductId(product.ProductId); if (productSpecificationAttributes.Count > 0) { gvProductSpecificationAttributes.Visible = true; gvProductSpecificationAttributes.DataSource = productSpecificationAttributes; gvProductSpecificationAttributes.DataBind(); } else { gvProductSpecificationAttributes.Visible = false; } } else { pnlData.Visible = false; pnlMessage.Visible = true; } }
/// <summary> /// Gets a product specification attribute mapping collection /// </summary> /// <param name="ProductID">Product identifier</param> /// <param name="AllowFiltering">0 to load attributes with AllowFiltering set to false, 0 to load attributes with AllowFiltering set to true, null to load all attributes</param> /// <param name="ShowOnProductPage">0 to load attributes with ShowOnProductPage set to false, 0 to load attributes with ShowOnProductPage set to true, null to load all attributes</param> /// <returns>Product specification attribute mapping collection</returns> public static ProductSpecificationAttributeCollection GetProductSpecificationAttributesByProductID(int ProductID, bool?AllowFiltering, bool?ShowOnProductPage) { string allowFilteringCacheStr = "null"; if (AllowFiltering.HasValue) { allowFilteringCacheStr = AllowFiltering.ToString(); } string showOnProductPageCacheStr = "null"; if (ShowOnProductPage.HasValue) { showOnProductPageCacheStr = ShowOnProductPage.ToString(); } string key = string.Format(PRODUCTSPECIFICATIONATTRIBUTE_ALLBYPRODUCTID_KEY, ProductID, allowFilteringCacheStr, showOnProductPageCacheStr); object obj2 = NopCache.Get(key); if (SpecificationAttributeManager.CacheEnabled && (obj2 != null)) { return((ProductSpecificationAttributeCollection)obj2); } DBProductSpecificationAttributeCollection dbCollection = DBProviderManager <DBSpecificationAttributeProvider> .Provider.GetProductSpecificationAttributesByProductID(ProductID, AllowFiltering, ShowOnProductPage); ProductSpecificationAttributeCollection productSpecificationAttributes = DBMapping(dbCollection); if (SpecificationAttributeManager.CacheEnabled) { NopCache.Max(key, productSpecificationAttributes); } return(productSpecificationAttributes); }
/// <summary> /// Maps a DBProductSpecificationAttributeCollection to a ProductSpecificationAttributeCollection /// </summary> /// <param name="dbCollection">DBProductSpecificationAttributeCollection</param> /// <returns>ProductSpecificationAttributeCollection</returns> private static ProductSpecificationAttributeCollection DBMapping(DBProductSpecificationAttributeCollection dbCollection) { if (dbCollection == null) { return(null); } ProductSpecificationAttributeCollection collection = new ProductSpecificationAttributeCollection(); foreach (DBProductSpecificationAttribute dbItem in dbCollection) { ProductSpecificationAttribute item = DBMapping(dbItem); collection.Add(item); } return(collection); }
protected void BindData() { Product product = ProductManager.GetProductByID(ProductID); if (product != null) { ProductSpecificationAttributeCollection productSpecificationAttributes = SpecificationAttributeManager.GetProductSpecificationAttributesByProductID(product.ProductID, null, true); if (productSpecificationAttributes.Count > 0) { this.Visible = true; rptrProductSpecification.DataSource = productSpecificationAttributes; rptrProductSpecification.DataBind(); } else { this.Visible = false; } } else { this.Visible = false; } }
public void CreateCompareTable() { this.tblCompareProducts.Rows.Clear(); this.tblCompareProducts.Width = "100%"; ProductCollection compareProducts = ProductManager.GetCompareProducts(); if (compareProducts.Count > 0) { HtmlTableRow headerRow = new HtmlTableRow(); this.AddCell(headerRow, " "); HtmlTableRow productNameRow = new HtmlTableRow(); this.AddCell(productNameRow, " "); HtmlTableRow priceRow = new HtmlTableRow(); HtmlTableCell cell = new HtmlTableCell(); cell.InnerText = GetLocaleResourceString("Products.CompareProductsPrice"); cell.Align = "center"; priceRow.Cells.Add(cell); List <int> allAttributeIDs = new List <int>(); foreach (Product product in compareProducts) { ProductSpecificationAttributeCollection productSpecificationAttributes = SpecificationAttributeManager.GetProductSpecificationAttributesByProductID(product.ProductID, null, true); foreach (ProductSpecificationAttribute attribute in productSpecificationAttributes) { if (!allAttributeIDs.Contains(attribute.SpecificationAttributeOptionID)) { allAttributeIDs.Add(attribute.SpecificationAttributeOptionID); } } } foreach (Product product in compareProducts) { HtmlTableCell headerCell = new HtmlTableCell(); HtmlGenericControl headerCellDiv = new HtmlGenericControl("div"); Button btnRemoveFromList = new Button(); btnRemoveFromList.ToolTip = GetLocaleResourceString("Products.CompareProductsRemoveFromList"); btnRemoveFromList.Text = GetLocaleResourceString("Products.CompareProductsRemoveFromList"); btnRemoveFromList.CommandName = "Remove"; btnRemoveFromList.Command += new CommandEventHandler(this.btnRemoveFromList_Command); btnRemoveFromList.CommandArgument = product.ProductID.ToString(); btnRemoveFromList.CausesValidation = false; btnRemoveFromList.CssClass = "removeButton"; btnRemoveFromList.ID = "btnRemoveFromList" + product.ProductID.ToString(); headerCellDiv.Controls.Add(btnRemoveFromList); HtmlGenericControl productImagePanel = new HtmlGenericControl("p"); productImagePanel.Attributes.Add("align", "center"); HtmlImage productImage = new HtmlImage(); productImage.Border = 0; //productImage.Align = "center"; productImage.Alt = "Product image"; ProductPictureCollection productPictures = product.ProductPictures; if (productPictures.Count > 0) { productImage.Src = PictureManager.GetPictureUrl(productPictures[0].Picture, SettingManager.GetSettingValueInteger("Media.Product.ThumbnailImageSize", 125), true); } else { productImage.Src = PictureManager.GetDefaultPictureUrl(SettingManager.GetSettingValueInteger("Media.Product.ThumbnailImageSize", 125)); } productImagePanel.Controls.Add(productImage); headerCellDiv.Controls.Add(productImagePanel); headerCell.Controls.Add(headerCellDiv); headerRow.Cells.Add(headerCell); HtmlTableCell productNameCell = new HtmlTableCell(); HyperLink productLink = new HyperLink(); productLink.Text = Server.HtmlEncode(product.Name); productLink.NavigateUrl = SEOHelper.GetProductURL(product); productLink.Attributes.Add("class", "link"); productNameCell.Align = "center"; productNameCell.Controls.Add(productLink); productNameRow.Cells.Add(productNameCell); HtmlTableCell priceCell = new HtmlTableCell(); priceCell.Align = "center"; ProductVariantCollection productVariantCollection = product.ProductVariants; if (productVariantCollection.Count > 0) { ProductVariant productVariant = productVariantCollection[0]; //decimal oldPrice = productVariant.OldPrice; //decimal oldPriceConverted = CurrencyManager.ConvertCurrency(oldPrice, CurrencyManager.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency); decimal finalPriceWithoutDiscountBase = TaxManager.GetPrice(productVariant, PriceHelper.GetFinalPrice(productVariant, false)); decimal finalPriceWithoutDiscount = CurrencyManager.ConvertCurrency(finalPriceWithoutDiscountBase, CurrencyManager.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency); priceCell.InnerText = PriceHelper.FormatPrice(finalPriceWithoutDiscount); } priceRow.Cells.Add(priceCell); } productNameRow.Attributes.Add("class", "productName"); priceRow.Attributes.Add("class", "productPrice"); this.tblCompareProducts.Rows.Add(headerRow); this.tblCompareProducts.Rows.Add(productNameRow); this.tblCompareProducts.Rows.Add(priceRow); if (allAttributeIDs.Count > 0) { foreach (int specificationAttributeID in allAttributeIDs) { //SpecificationAttribute attribute = SpecificationAttributeManager.GetSpecificationAttributeByID(specificationAttributeID); SpecificationAttributeOption attributeOption = SpecificationAttributeManager.GetSpecificationAttributeOptionByID(specificationAttributeID); HtmlTableRow productRow = new HtmlTableRow(); this.AddCell(productRow, Server.HtmlEncode(attributeOption.SpecificationAttribute.Name)).Align = "left"; foreach (Product product2 in compareProducts) { HtmlTableCell productCell = new HtmlTableCell(); { ProductSpecificationAttributeCollection productSpecificationAttributes2 = SpecificationAttributeManager.GetProductSpecificationAttributesByProductID(product2.ProductID, null, true); foreach (ProductSpecificationAttribute attribute2 in productSpecificationAttributes2) { if (attributeOption.SpecificationAttributeOptionID == attribute2.SpecificationAttributeOptionID) { productCell.InnerHtml = (!String.IsNullOrEmpty(attribute2.SpecificationAttributeOption.Name)) ? Server.HtmlEncode(attribute2.SpecificationAttributeOption.Name) : " "; } } } productCell.Align = "center"; productCell.VAlign = "top"; productRow.Cells.Add(productCell); } this.tblCompareProducts.Rows.Add(productRow); } } string width = Math.Round((decimal)(90M / compareProducts.Count), 0).ToString() + "%"; for (int i = 0; i < this.tblCompareProducts.Rows.Count; i++) { HtmlTableRow row = this.tblCompareProducts.Rows[i]; for (int j = 1; j < row.Cells.Count; j++) { if (j == (row.Cells.Count - 1)) { row.Cells[j].Style.Add("width", width); row.Cells[j].Style.Add("text-align", "center"); } else { row.Cells[j].Style.Add("width", width); row.Cells[j].Style.Add("text-align", "center"); } } } } else { btnClearCompareProductsList.Visible = false; tblCompareProducts.Visible = false; } }