Пример #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.ContentType = "text/json";
            Encoding encoding = new UTF8Encoding();

            Response.ContentEncoding = encoding;

            try
            {
                LoadParams();

                if (
                    method != "AddProductToCart_Catalog" &&
                    method != "AddProductToCart_Details" &&
                    method != "UpdateCart" &&
                    method != "RemoveFromCart" &&
                    method != "ChangeAttributes"
                    )
                {
                    Response.Write(StringHelper.ToJsonString(new
                    {
                        success = false,
                        message = "No method found with the " + method
                    }));
                    return;
                }

                if (method == "UpdateCart")
                {
                    Response.Write(CartHelper.UpdateCart(postParams));
                    return;
                }
                else if (method == "RemoveFromCart")
                {
                    Guid itemGuid = Guid.Empty;
                    if (postParams.Get("itemguid") != null)
                    {
                        Guid.TryParse(postParams.Get("itemguid"), out itemGuid);
                    }

                    Response.Write(CartHelper.RemoveFromCart(itemGuid));
                    return;
                }

                int     productId = -1;
                Product product   = null;
                //productId = WebUtils.ParseInt32FromQueryString("ProductId", productId);
                if (postParams.Get("productid") != null)
                {
                    int.TryParse(postParams.Get("productid"), out productId);
                }

                SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings();
                if (siteSettings != null && siteSettings.SiteId > 0)
                {
                    product = new Product(siteSettings.SiteId, productId);
                }

                if (
                    product == null ||
                    product.ProductId <= 0 ||
                    !product.IsPublished ||
                    product.IsDeleted
                    )
                {
                    Response.Write(StringHelper.ToJsonString(new
                    {
                        success = false,
                        message = "No product found with the specified ID"
                    }));
                    return;
                }

                switch (method)
                {
                case "AddProductToCart_Catalog":
                    int quantity = 1;
                    if (postParams.Get("qty") != null)
                    {
                        int.TryParse(postParams.Get("qty"), out quantity);
                    }
                    Response.Write(CartHelper.AddProductToCart_Catalog(product, ShoppingCartTypeEnum.ShoppingCart, quantity));
                    break;

                case "AddProductToCart_Details":
                    Response.Write(CartHelper.AddProductToCart_Details(product, ShoppingCartTypeEnum.ShoppingCart, postParams));
                    break;

                case "ChangeAttributes":
                    Response.Write(ChangeAttributes(product, postParams));
                    break;
                }
            }
            catch (Exception ex)
            {
                log.Error(ex);

                Response.Write(StringHelper.ToJsonString(new
                {
                    success = false,
                    message = "Failed to process from the server. Please refresh the page and try one more time."
                }));
            }
        }