Beispiel #1
0
        protected void btnProductDetails_Click(object sender, CommandEventArgs e)
        {
            int    productID  = Convert.ToInt32(e.CommandArgument);
            string productURL = SEOHelper.GetProductURL(productID);

            Response.Redirect(productURL);
        }
        protected void dlAlsoPurchasedProducts_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Product product = e.Item.DataItem as Product;
                if (product != null)
                {
                    string productURL = SEOHelper.GetProductURL(product);

                    HyperLink hlImageLink = e.Item.FindControl("hlImageLink") as HyperLink;
                    if (hlImageLink != null)
                    {
                        ProductPictureCollection productPictures = product.ProductPictures;
                        if (productPictures.Count > 0)
                        {
                            hlImageLink.ImageUrl = PictureManager.GetPictureUrl(productPictures[0].Picture, SettingManager.GetSettingValueInteger("Media.Product.ThumbnailImageSize", 125), true);
                        }
                        else
                        {
                            hlImageLink.ImageUrl = PictureManager.GetDefaultPictureUrl(SettingManager.GetSettingValueInteger("Media.Product.ThumbnailImageSize", 125));
                        }
                        hlImageLink.NavigateUrl = productURL;
                        hlImageLink.ToolTip     = String.Format(GetLocaleResourceString("Media.Product.ImageLinkTitleFormat"), product.Name);
                        hlImageLink.Text        = String.Format(GetLocaleResourceString("Media.Product.ImageAlternateTextFormat"), product.Name);
                    }

                    HyperLink hlProduct = e.Item.FindControl("hlProduct") as HyperLink;
                    if (hlProduct != null)
                    {
                        hlProduct.NavigateUrl = productURL;
                        hlProduct.Text        = product.Name;
                    }
                }
            }
        }
        protected void BindData()
        {
            Product product = ProductManager.GetProductByID(ProductID);

            if (product != null)
            {
                hlProduct.NavigateUrl  = SEOHelper.GetProductURL(product);
                hlProduct.Text         = Server.HtmlEncode(product.Name);
                lShortDescription.Text = product.ShortDescription;

                if (NopContext.Current.User == null || NopContext.Current.User.IsGuest)
                {
                    lblEmailAFriend.Text       = GetLocaleResourceString("Products.OnlyRegisteredUsersCanEmailAFriend");
                    txtFriendsEmail.Enabled    = false;
                    txtPersonalMessage.Enabled = false;
                    btnEmail.Enabled           = false;
                }
                else
                {
                    lblEmailAFriend.Text       = string.Empty;
                    txtFriendsEmail.Enabled    = true;
                    lblFrom.Text               = NopContext.Current.User.Email;
                    txtPersonalMessage.Enabled = true;
                    btnEmail.Enabled           = true;
                }
            }
            else
            {
                this.Visible = false;
            }
        }
Beispiel #4
0
        protected void btnAddToCart_Click(object sender, CommandEventArgs e)
        {
            int productID        = Convert.ToInt32(e.CommandArgument);
            int productVariantID = 0;

            if (ProductManager.DirectAddToCartAllowed(productID, out productVariantID))
            {
                List <string> addToCartWarnings = ShoppingCartManager.AddToCart(ShoppingCartTypeEnum.ShoppingCart,
                                                                                productVariantID, string.Empty, 1);
                if (addToCartWarnings.Count == 0)
                {
                    Response.Redirect("~/ShoppingCart.aspx");
                }
                else
                {
                    string productURL = SEOHelper.GetProductURL(productID);
                    Response.Redirect(productURL);
                }
            }
            else
            {
                string productURL = SEOHelper.GetProductURL(productID);
                Response.Redirect(productURL);
            }
        }
Beispiel #5
0
        public string GetProductURL(ShoppingCartItem shoppingCartItem)
        {
            ProductVariant productVariant = shoppingCartItem.ProductVariant;

            if (productVariant != null)
            {
                return(SEOHelper.GetProductURL(productVariant.ProductID));
            }
            return(string.Empty);
        }
Beispiel #6
0
        private string getProductUrlWithPricelistProvider(int ProductID, int AffiliateID)
        {
            string URL = SEOHelper.GetProductURL(ProductID);

            if (AffiliateID != 0)
            {
                URL = CommonHelper.ModifyQueryString(URL, "AffiliateID=" + AffiliateID.ToString(), null);
            }
            return(URL);
        }
        public string GetProductURL(int ProductVariantID)
        {
            ProductVariant productVariant = ProductManager.GetProductVariantByID(ProductVariantID);

            if (productVariant != null)
            {
                return(SEOHelper.GetProductURL(productVariant.ProductID));
            }
            return(string.Empty);
        }
 private void WriteProducts(StringBuilder sb, List <Product> productCollection)
 {
     foreach (Product product in productCollection)
     {
         string shortDescription = String.IsNullOrEmpty(product.ShortDescription)? ""
             : String.Format(" - {0}", product.ShortDescription);
         sb.AppendFormat("<li><a href=\"{0}\">{1}</a>{2}</li>",
                         SEOHelper.GetProductURL(product), Server.HtmlEncode(product.Name), shortDescription);
     }
 }
        private void WriteProducts()
        {
            ProductCollection products = ProductManager.GetAllProducts(false);

            foreach (Product product in products)
            {
                string          url             = SEOHelper.GetProductURL(product);
                UpdateFrequency updateFrequency = UpdateFrequency.weekly;
                DateTime        updateTime      = product.UpdatedOn;
                WriteUrlLocation(url, updateFrequency, updateTime);
            }
        }
Beispiel #10
0
 protected void lvRecentlyViewedProducts_ItemDataBound(object sender, ListViewItemEventArgs e)
 {
     if (e.Item.ItemType == ListViewItemType.DataItem)
     {
         ListViewDataItem dataItem = e.Item as ListViewDataItem;
         if (dataItem != null)
         {
             Product product = dataItem.DataItem as Product;
             if (product != null)
             {
                 HyperLink hlProduct = dataItem.FindControl("hlProduct") as HyperLink;
                 hlProduct.NavigateUrl = SEOHelper.GetProductURL(product);
             }
         }
     }
 }
Beispiel #11
0
        private SiteMapNode ChangeProductMap(SiteMapResolveEventArgs e, SiteMapNode parent)
        {
            SiteMapNode currentProductNode = e.Provider.FindSiteMapNode("~/Sitemap-Products.aspx").Clone(true);

            try
            {
                SiteMapNode tempNode = currentProductNode;
                Product     product  = ProductManager.GetProductByID(ProductId);
                tempNode.Url         = SEOHelper.GetProductURL(product.ProductID);
                tempNode.Description = product.Name;
                tempNode.Title       = product.Name;
                tempNode.ParentNode  = parent;
            }
            catch
            {
            }

            return(currentProductNode);
        }
        private void BindData()
        {
            if (product != null)
            {
                string productURL = SEOHelper.GetProductURL(product);

                ProductPictureCollection productPictures = product.ProductPictures;
                if (productPictures.Count > 0)
                {
                    hlImageLink.ImageUrl = PictureManager.GetPictureUrl(productPictures[0].Picture, ProductImageSize, true);
                    hlImageLink.ToolTip  = String.Format(GetLocaleResourceString("Media.Product.ImageLinkTitleFormat"), product.Name);
                    hlImageLink.Text     = String.Format(GetLocaleResourceString("Media.Product.ImageAlternateTextFormat"), product.Name);
                }
                else
                {
                    hlImageLink.ImageUrl = PictureManager.GetDefaultPictureUrl(this.ProductImageSize);
                    hlImageLink.ToolTip  = String.Format(GetLocaleResourceString("Media.Product.ImageLinkTitleFormat"), product.Name);
                    hlImageLink.Text     = String.Format(GetLocaleResourceString("Media.Product.ImageAlternateTextFormat"), product.Name);
                }
                hlImageLink.NavigateUrl = productURL;
            }
        }
Beispiel #13
0
        protected void dlRelatedProducts_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                RelatedProduct relatedProduct = e.Item.DataItem as RelatedProduct;
                Product        product        = relatedProduct.Product2;

                if (relatedProduct != null && product != null)
                {
                    string productURL = SEOHelper.GetProductURL(product);

                    Label lblPrice = e.Item.FindControl("lblPrice") as Label;

                    if (product.ProductVariants.Count > 0)
                    {
                        if (!product.HasMultipleVariants)
                        {
                            ProductVariant productVariant = product.ProductVariants[0];

                            decimal oldPriceBase = TaxManager.GetPrice(productVariant, productVariant.OldPrice);
                            decimal finalPriceWithoutDiscountBase = TaxManager.GetPrice(productVariant, PriceHelper.GetFinalPrice(productVariant, false));

                            decimal oldPrice = CurrencyManager.ConvertCurrency(oldPriceBase, CurrencyManager.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency);
                            decimal finalPriceWithoutDiscount = CurrencyManager.ConvertCurrency(finalPriceWithoutDiscountBase, CurrencyManager.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency);

                            lblPrice.Text = PriceHelper.FormatPrice(finalPriceWithoutDiscountBase);
                        }
                        else
                        {
                            ProductVariant productVariant = product.MinimalPriceProductVariant;
                            if (productVariant != null)
                            {
                                decimal fromPriceBase = TaxManager.GetPrice(productVariant, PriceHelper.GetFinalPrice(productVariant, false));
                                decimal fromPrice     = CurrencyManager.ConvertCurrency(fromPriceBase, CurrencyManager.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency);
                                lblPrice.Text = String.Format(GetLocaleResourceString("Products.PriceRangeFromText"), PriceHelper.FormatPrice(fromPrice));
                            }
                        }
                    }
                    Image hlImageLink = e.Item.FindControl("hlImageLink") as Image;
                    if (hlImageLink != null)
                    {
                        ProductPictureCollection productPictures = product.ProductPictures;
                        if (productPictures.Count > 0)
                        {
                            hlImageLink.ImageUrl = PictureManager.GetPictureUrl(productPictures[0].Picture, SettingManager.GetSettingValueInteger("Media.Product.ThumbnailImageSize", 84), true);
                        }
                        else
                        {
                            hlImageLink.ImageUrl = PictureManager.GetDefaultPictureUrl(SettingManager.GetSettingValueInteger("Media.Product.ThumbnailImageSize", 84));
                        }
                        //hlImageLink.NavigateUrl = productURL;
                        //hlImageLink.ToolTip = String.Format(GetLocaleResourceString("Media.Product.ImageLinkTitleFormat"), product.Name);
                        //hlImageLink.Text = String.Format(GetLocaleResourceString("Media.Product.ImageAlternateTextFormat"), product.Name);
                    }

                    HyperLink hlProduct = e.Item.FindControl("hlProduct") as HyperLink;
                    if (hlProduct != null)
                    {
                        hlProduct.NavigateUrl = productURL;
                        //hlProduct.Text = product.Name;
                    }
                }
            }
        }
        protected void BindData()
        {
            Category category = CategoryManager.GetCategoryByID(CategoryID);
            //настройка видимости фильтра
            Category baseCategory = category;
            Category prevCat      = category;

            while (baseCategory.ParentCategory != null)
            {
                prevCat      = baseCategory;
                baseCategory = baseCategory.ParentCategory;
            }

            string categoryName = baseCategory.Name.ToLower();

            AdjustFilters(prevCat, categoryName);
            AdjustColorsFilter(categoryName, category);

            // настройка лидеров продаж
            List <BestSellersReportLine> report = OrderManager.BestSellersReport(720, 10, 1);

            if (report.Count == 0)
            {
                ((TwoColumn)Page.Master).SalesLeader.Visible = false;
            }
            else
            {
                int            index          = report.Count > 9 ? 9 : report.Count - 1;
                ProductVariant productVariant = ProductManager.GetProductVariantByID(report[new Random().Next(index)].ProductVariantID);
                if (productVariant.Product.ProductPictures.Count > 0)
                {
                    ((TwoColumn)Page.Master).imgSalesLeader.ImageUrl = PictureManager.GetPictureUrl(productVariant.Product.ProductPictures[0].Picture);
                }
                else
                {
                    ((TwoColumn)Page.Master).imgSalesLeader.ImageUrl = PictureManager.GetPictureUrl(productVariant.Picture);
                }
                ((TwoColumn)Page.Master).hlSalesLeader.NavigateUrl = SEOHelper.GetProductURL(productVariant.Product);
            }

            // настройка уникального предложения
            if (category.FeaturedProducts.Count > 0)
            {
                Product product = category.FeaturedProducts[new Random().Next(category.FeaturedProducts.Count - 1)];
                if (product.ProductPictures.Count > 0)
                {
                    ((TwoColumn)Page.Master).imgUniqueProposal.ImageUrl = PictureManager.GetPictureUrl(product.ProductPictures[0].Picture);
                }
                else
                {
                    ((TwoColumn)Page.Master).imgUniqueProposal.ImageUrl = PictureManager.GetPictureUrl(product.ProductVariants[0].Picture);
                }
                ((TwoColumn)Page.Master).hlUniqueProposal.NavigateUrl = SEOHelper.GetProductURL(product);
            }
            else
            {
                ((TwoColumn)Page.Master).Unique.Visible = false;
            }

            lDescription.Text     = category.Description;
            SmallDescription.Text = category.SmallDescription;
            int totalRecords;

            Int32.TryParse(productsCount.SelectedItem.Text, out pageSize);
            if (pageSize == 0)
            {
                pageSize = Int32.MaxValue;
            }

            SortParameter sortParameter    = GetSortParameter();
            List <int>    psoFilterOptions = new List <int>();

            psoFilterOptions.AddRange(((TwoColumn)Page.Master).PSOFilterOption);
            psoFilterOptions.AddRange(this.designVariant.GetDesignVariantIds());
            psoFilterOptions.AddRange(this.weddingBunchVariant.GetDesignVariantIds());
            psoFilterOptions.AddRange(this.houseFlowersVariant.GetDesignVariantIds());
            decimal?priceMin = CommonHelper.QueryStringInt("minCost", 0);

            if (priceMin == 0)
            {
                var twoColumn = (TwoColumn)Page.Master;
                if (twoColumn != null)
                {
                    priceMin = twoColumn.MinPriceConverted;
                }
            }
            decimal?priceMax = CommonHelper.QueryStringInt("maxCost", 0);

            if (priceMax == 0)
            {
                var twoColumn = (TwoColumn)Page.Master;
                if (twoColumn != null)
                {
                    priceMax = twoColumn.MaxPriceConverted;
                }
            }

            int minHeight = CommonHelper.QueryStringInt("minHeight", 0);
            int maxHeight = CommonHelper.QueryStringInt("maxHeight", int.MaxValue);
            int minWidth  = CommonHelper.QueryStringInt("minWidth", 0);
            int maxWidth  = CommonHelper.QueryStringInt("maxWidth", int.MaxValue);

            ProductCollection productCollection = ProductManager.GetAllProducts(CategoryID,
                                                                                0, null, priceMin, priceMax,
                                                                                pageSize, CurrentPageIndex, psoFilterOptions, (int)sortParameter.SortBy, sortParameter.Ascending,
                                                                                minHeight, maxHeight, minWidth, maxWidth, out totalRecords);

            SetItemsToGrid(totalRecords, productCollection, categoryName);
        }
Beispiel #15
0
        private void BindData()
        {
            if (product != null)
            {
                string productURL = SEOHelper.GetProductURL(product);

                hlProduct.Text = Server.HtmlEncode(product.Name);

                ProductPictureCollection productPictures = product.ProductPictures;
                if (productPictures.Count > 0)
                {
                    hlImageLink.ImageUrl = PictureManager.GetPictureUrl(productPictures[0].Picture, ProductImageSize, true);
                    hlImageLink.ToolTip  = String.Format(GetLocaleResourceString("Media.Product.ImageLinkTitleFormat"), product.Name);
                    hlImageLink.Text     = String.Format(GetLocaleResourceString("Media.Product.ImageAlternateTextFormat"), product.Name);
                }
                else
                {
                    hlImageLink.ImageUrl = PictureManager.GetDefaultPictureUrl(this.ProductImageSize);
                    hlImageLink.ToolTip  = String.Format(GetLocaleResourceString("Media.Product.ImageLinkTitleFormat"), product.Name);
                    hlImageLink.Text     = String.Format(GetLocaleResourceString("Media.Product.ImageAlternateTextFormat"), product.Name);
                }
                hlImageLink.NavigateUrl = productURL;

                lShortDescription.Text = product.ShortDescription;

                ProductVariantCollection productVariantCollection = product.ProductVariants;

                if (productVariantCollection.Count > 0)
                {
                    if (!product.HasMultipleVariants)
                    {
                        ProductVariant productVariant = productVariantCollection[0];

                        decimal finalPriceWithoutDiscountBase = TaxManager.GetPrice(productVariant, PriceHelper.GetFinalPrice(productVariant, false));

                        lblPrice.Text = PriceHelper.FormatPrice(finalPriceWithoutDiscountBase);
                        if (Request.Cookies["Currency"] != null && Request.Cookies["Currency"].Value == "USD")
                        {
                            lblPrice.Text += "$";
                        }
                    }
                    else
                    {
                        ProductVariant productVariant = product.MinimalPriceProductVariant;
                        if (productVariant != null)
                        {
                            decimal fromPriceBase = TaxManager.GetPrice(productVariant, PriceHelper.GetFinalPrice(productVariant, false));
                            decimal fromPrice     = CurrencyManager.ConvertCurrency(fromPriceBase, CurrencyManager.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency);
                            lblPrice.Text = String.Format(GetLocaleResourceString("Products.PriceRangeFromText"), PriceHelper.FormatPrice(fromPrice));
                        }
                    }
                }
                else
                {
                    lblPrice.Visible = false;
                }

                #region scjaarge's change
                if (!lblPrice.Visible || lblPrice.Text.Trim() == string.Empty)
                {
                    litOrderOrNa.Text = "Нет в наличии";
                }
                #endregion scjaarge's change
            }
        }
Beispiel #16
0
        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, "&nbsp;");
                HtmlTableRow productNameRow = new HtmlTableRow();
                this.AddCell(productNameRow, "&nbsp;");
                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) : "&nbsp;";
                                    }
                                }
                            }
                            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;
            }
        }
        private void BindData()
        {
            if (product != null)
            {
                string productURL = SEOHelper.GetProductURL(product);

                hlProduct.NavigateUrl = productURL;
                hlProduct.Text        = Server.HtmlEncode(product.Name);

                ProductPictureCollection productPictures = product.ProductPictures;
                if (productPictures.Count > 0)
                {
                    hlImageLink.ImageUrl = PictureManager.GetPictureUrl(productPictures[0].Picture, this.ProductImageSize, true);
                    hlImageLink.ToolTip  = String.Format(GetLocaleResourceString("Media.Product.ImageLinkTitleFormat"), product.Name);
                    hlImageLink.Text     = String.Format(GetLocaleResourceString("Media.Product.ImageAlternateTextFormat"), product.Name);
                }
                else
                {
                    hlImageLink.ImageUrl = PictureManager.GetDefaultPictureUrl(this.ProductImageSize);
                    hlImageLink.ToolTip  = String.Format(GetLocaleResourceString("Media.Product.ImageLinkTitleFormat"), product.Name);
                    hlImageLink.Text     = String.Format(GetLocaleResourceString("Media.Product.ImageAlternateTextFormat"), product.Name);
                }

                hlImageLink.NavigateUrl = productURL;
                lShortDescription.Text  = product.ShortDescription;

                ProductVariantCollection productVariantCollection = product.ProductVariants;
                if (productVariantCollection.Count > 0)
                {
                    if (!product.HasMultipleVariants)
                    {
                        ProductVariant productVariant = productVariantCollection[0];

                        decimal oldPriceBase = TaxManager.GetPrice(productVariant, productVariant.OldPrice);
                        decimal finalPriceWithoutDiscountBase = TaxManager.GetPrice(productVariant, PriceHelper.GetFinalPrice(productVariant, false));

                        decimal oldPrice = CurrencyManager.ConvertCurrency(oldPriceBase, CurrencyManager.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency);
                        decimal finalPriceWithoutDiscount = CurrencyManager.ConvertCurrency(finalPriceWithoutDiscountBase, CurrencyManager.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency);

                        if (finalPriceWithoutDiscountBase != oldPriceBase && oldPriceBase != decimal.Zero)
                        {
                            lblOldPrice.Text = PriceHelper.FormatPrice(oldPrice);
                            lblPrice.Text    = PriceHelper.FormatPrice(finalPriceWithoutDiscount);
                        }
                        else
                        {
                            lblOldPrice.Visible = false;
                            lblPrice.Text       = PriceHelper.FormatPrice(finalPriceWithoutDiscount);
                        }

                        btnAddToCart.Visible = (!productVariant.DisableBuyButton);
                    }
                    else
                    {
                        ProductVariant productVariant = product.MinimalPriceProductVariant;
                        if (productVariant != null)
                        {
                            decimal fromPriceBase = TaxManager.GetPrice(productVariant, PriceHelper.GetFinalPrice(productVariant, false));
                            decimal fromPrice     = CurrencyManager.ConvertCurrency(fromPriceBase, CurrencyManager.PrimaryStoreCurrency, NopContext.Current.WorkingCurrency);
                            lblPrice.Text = String.Format(GetLocaleResourceString("Products.PriceRangeFromText"), PriceHelper.FormatPrice(fromPrice));
                        }

                        btnAddToCart.Visible = false;
                    }
                }
                else
                {
                    lblOldPrice.Visible  = false;
                    lblPrice.Visible     = false;
                    btnAddToCart.Visible = false;
                }
            }
        }
        /// <summary>
        /// Generate froogle feed
        /// </summary>
        /// <param name="stream">Stream</param>
        public static void GenerateFeed(Stream stream)
        {
            const string googleBaseNamespace = "http://base.google.com/ns/1.0";

            XmlWriterSettings settings = new XmlWriterSettings
            {
                Encoding = Encoding.UTF8
            };

            using (XmlWriter writer = XmlWriter.Create(stream, settings))
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("rss");
                writer.WriteAttributeString("version", "2.0");
                writer.WriteAttributeString("xmlns", "g", null, googleBaseNamespace);
                writer.WriteStartElement("channel");
                writer.WriteElementString("title", string.Format("{0} Google Base", SettingManager.StoreName));
                writer.WriteElementString("link", "http://base.google.com/base/");
                writer.WriteElementString("description", "Information about products");


                ProductCollection products = ProductManager.GetAllProducts(false);
                foreach (Product product in products)
                {
                    ProductVariantCollection productVariants = ProductManager.GetProductVariantsByProductID(product.ProductID, false);

                    foreach (ProductVariant productVariant in productVariants)
                    {
                        writer.WriteStartElement("item");
                        writer.WriteElementString("link", SEOHelper.GetProductURL(product));
                        writer.WriteElementString("title", productVariant.FullProductName);
                        writer.WriteStartElement("description");
                        string description = productVariant.Description;
                        if (String.IsNullOrEmpty(description))
                        {
                            description = product.FullDescription;
                        }
                        if (String.IsNullOrEmpty(description))
                        {
                            description = product.ShortDescription;
                        }
                        if (String.IsNullOrEmpty(description))
                        {
                            description = product.Name;
                        }
                        writer.WriteCData(description);
                        writer.WriteEndElement();     // description
                        writer.WriteStartElement("g", "brand", googleBaseNamespace);
                        writer.WriteFullEndElement(); // g:brand
                        writer.WriteElementString("g", "condition", googleBaseNamespace, "new");
                        writer.WriteElementString("g", "expiration_date", googleBaseNamespace, DateTime.Now.AddDays(30).ToString("yyyy-MM-dd"));
                        writer.WriteElementString("g", "id", googleBaseNamespace, productVariant.ProductVariantID.ToString());
                        string imageUrl = string.Empty;
                        ProductPictureCollection productPictures = product.ProductPictures;
                        if (productPictures.Count > 0)
                        {
                            imageUrl = PictureManager.GetPictureUrl(productPictures[0].Picture, SettingManager.GetSettingValueInteger("Media.Product.ThumbnailImageSize"), true);
                        }
                        writer.WriteElementString("g", "image_link", googleBaseNamespace, imageUrl);
                        decimal price = productVariant.Price;
                        writer.WriteElementString("g", "price", googleBaseNamespace, price.ToString(new CultureInfo("en-US", false).NumberFormat));
                        writer.WriteStartElement("g", "product_type", googleBaseNamespace);
                        writer.WriteFullEndElement(); // g:brand
                        //if (productVariant.Weight != decimal.Zero)
                        //{
                        //    writer.WriteElementString("g", "weight", googleBaseNamespace, string.Format(CultureInfo.InvariantCulture, "{0} {1}", productVariant.Weight.ToString(new CultureInfo("en-US", false).NumberFormat), MeasureManager.BaseWeightIn.SystemKeyword));
                        //}
                        writer.WriteEndElement(); // item
                    }
                }

                writer.WriteEndElement(); // channel
                writer.WriteEndElement(); // rss
                writer.WriteEndDocument();
            }
        }