示例#1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        int.TryParse(Request["productId"], out ProductId);
        var man = new AttributeSetsManager();
        var parentsAttributes = new List<int>();
        var parentsAttributesValues = new List<int>();

        var prodProv = new PigeonCms.Shop.ProductsProvider.CurrentProduct<ProductItem, ProductItemsManager, ProductItemFilter>(ProductId);

        PanelDropVariants.Attributes.Add("data-product-id", ProductId.ToString());

        // variants
        for (int i = 0; i < prodProv.Product.Attributes.Count; i++)
        {
            DropDownList d = new DropDownList();
            d.ID = "DropDown" + prodProv.Product.Attributes[i].Name;
            d.ClientIDMode = System.Web.UI.ClientIDMode.Static;
            d.Attributes.Add("data-select-id", prodProv.Product.Attributes[i].Id.ToString());
            if (i == 0)
            {
                d.Attributes.Add("data-select-parent", "");
                foreach (var v in prodProv.GetDefaultAttribute())
                {
                    d.Items.Add(new ListItem(v.Value, v.Id.ToString()));
                }
            }
            else
            {
                parentsAttributes.Add(prodProv.Product.Attributes[i - 1].Id);
                parentsAttributesValues.Add(prodProv.Product.AttributeValues[i - 1].Id);
                d.Attributes.Add("data-select-parent", string.Join(",", parentsAttributes.Select(parent => parent.ToString()).ToArray()));
                foreach (var v in prodProv.GetNextAttribute(parentsAttributesValues))
                {
                    d.Items.Add(new ListItem(v.Value, v.Id.ToString()));
                }
            }

            if (i == prodProv.Product.Attributes.Count - 1)
            {
                d.Attributes.Add("data-last", "");
            }

            var selected = prodProv.Product.AttributeValues.Find(x => x.AttributeId == prodProv.Product.Attributes[i].Id);
            d.SelectedValue = selected.Id.ToString();

            PanelDropVariants.Controls.Add(d);
        }

        LitTitle.Text = prodProv.Product.Title;
        LitDescription.Text = prodProv.Product.Description;
        LitRegPrice.Text = prodProv.Product.RegularPrice.ToString("C");
        LitSalePrice.Text = prodProv.Product.SalePrice.ToString("C");
    }
示例#2
0
    public static object GetThread(string values, int productId)
    {
        var parentsAttributesValues = values.Split(',').Select(int.Parse).ToList();

        var prodProv = new PigeonCms.Shop.ProductsProvider.CurrentProduct<ProductItem, ProductItemsManager, ProductItemFilter>(productId);
        var thread = prodProv.GetProductByAttributeValues(parentsAttributesValues);

        var obj = new
        {
            title = thread.Title,
            description = thread.Description,
            regPrice = thread.RegularPrice.ToString("C"),
            salePrice = thread.SalePrice.ToString("C")
        };

        return obj;
    }
示例#3
0
    public static List<object> GetNextValues(string values, int productId)
    {
        var parentsAttributesValues = values.Split(',').Select(int.Parse).ToList();

        var prodProv = new PigeonCms.Shop.ProductsProvider.CurrentProduct<ProductItem, ProductItemsManager, ProductItemFilter>(productId);
        var attributeValues = prodProv.GetNextAttribute(parentsAttributesValues);

        var ret = new List<object>();

        foreach (var a in attributeValues)
        {
            var value = new
            {
                label = a.Value,
                value = a.Id.ToString()
            };
            ret.Add(value);
        }

        return ret;
    }