protected int GetProductCount(object dataItem)
        {
            DigitalGood m = (DigitalGood)dataItem;

            if (_ProductCounts.ContainsKey(m.Id))
            {
                return(_ProductCounts[m.Id]);
            }
            int count = ProductDigitalGoodDataSource.CountForDigitalGood(m.Id);

            _ProductCounts[m.Id] = count;
            return(count);
        }
Beispiel #2
0
        protected void VariantGrid_ItemCreated(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                PlaceHolder phVariantRow = e.Item.FindControl("phVariantRow") as PlaceHolder;
                if (phVariantRow != null)
                {
                    ProductVariant variant      = (ProductVariant)e.Item.DataItem;
                    int            variantIndex = _VariantManager.IndexOf(variant);
                    string         optionList   = variant.OptionList;
                    StringBuilder  rowBuilder   = new StringBuilder();
                    //DRAW THE DATA ROW
                    string rowClass = (e.Item.ItemType == ListItemType.Item) ? "oddRow" : "evenRow";
                    rowBuilder.Append("<tr class=\"" + rowClass + "\">\r\n");
                    rowBuilder.Append("<td align=\"center\">" + (variantIndex + 1) + "</td>\r\n");
                    rowBuilder.Append("<td>" + variant.VariantName + "</td>\r\n");
                    rowBuilder.Append("<td>");
                    //BUILD TABLE OF EXISTING DIGITAL GOODS
                    IList <ProductDigitalGood> variantDigitalGoods = ProductDigitalGoodDataSource.LoadForVariant(this.ProductId, optionList);
                    if (variantDigitalGoods.Count > 0)
                    {
                        phVariantRow.Controls.Add(new LiteralControl(rowBuilder.ToString()));
                        foreach (ProductDigitalGood pdg in variantDigitalGoods)
                        {
                            string digitalGoodName = pdg.DigitalGood.Name;
                            string linkedName      = string.Format("<a href=\"../../DigitalGoods/EditDigitalGood.aspx?CategoryId={0}&ProductId={1}&DigitalGoodId={2}\">" + digitalGoodName + "</a>", CategoryId, ProductId, pdg.DigitalGoodId);
                            phVariantRow.Controls.Add(new LiteralControl("<b>" + linkedName + "</b>&nbsp;&nbsp;" + GetFileSize(pdg.DigitalGood) + "&nbsp;&nbsp;"));
                            HyperLink downloadLink = new HyperLink();
                            downloadLink.NavigateUrl     = "../../DigitalGoods/Download.ashx?DigitalGoodId=" + pdg.DigitalGoodId;
                            downloadLink.EnableViewState = false;
                            Image downloadIcon = new Image();
                            downloadIcon.AlternateText   = "Download";
                            downloadIcon.ToolTip         = "Download";
                            downloadIcon.SkinID          = "DownloadIcon";
                            downloadIcon.EnableViewState = false;
                            downloadLink.Controls.Add(downloadIcon);
                            phVariantRow.Controls.Add(downloadLink);
                            ImageButton detachButton = new ImageButton();
                            detachButton.ID              = "D" + pdg.Id.ToString();
                            detachButton.AlternateText   = "Delete";
                            detachButton.ToolTip         = "Delete";
                            detachButton.SkinID          = "DeleteIcon";
                            detachButton.Click          += new ImageClickEventHandler(detachButton_Click);
                            detachButton.OnClientClick   = string.Format("return confirm(\"Are you sure you want to remove {0} from this product?\")", digitalGoodName);
                            detachButton.EnableViewState = false;
                            phVariantRow.Controls.Add(detachButton);
                            phVariantRow.Controls.Add(new LiteralControl("<br />"));
                        }
                        rowBuilder = new StringBuilder();
                    }
                    rowBuilder.Append("<a href=\"AttachDigitalGood.aspx?ProductId=" + this.ProductId + "&Options=" + Server.UrlEncode(EncryptionHelper.EncryptAES(optionList)) + "\" class=\"button\">Add</a>");
                    rowBuilder.Append("</td>\r\n");

                    /*
                     * rowBuilder.Append("<td>");
                     * rowBuilder.Append("<a href=\"AttachDigitalGood.aspx?ProductId=" + this.ProductId + "&Options=" + Server.UrlEncode(EncryptionHelper.EncryptAES(optionList)) + "\" Title=\"Attach Digital Good\">");
                     * phVariantRow.Controls.Add(new LiteralControl(rowBuilder.ToString()));
                     * Image addIcon = new Image();
                     * addIcon.SkinID = "AddIcon";
                     * phVariantRow.Controls.Add(addIcon);
                     * rowBuilder = new StringBuilder();
                     * rowBuilder.Append("</a></td>\r\n");
                     * rowBuilder.Append("</tr>\r\n");
                     */
                    phVariantRow.Controls.Add(new LiteralControl(rowBuilder.ToString()));
                }
            }
        }
Beispiel #3
0
 protected void BindDigitalGoodsGrid()
 {
     DigitalGoodsGrid.DataSource = ProductDigitalGoodDataSource.LoadForVariant(this.ProductId, string.Empty);
     DigitalGoodsGrid.DataBind();
 }