示例#1
0
        private string findProduct(HttpContext context)
        {
            int num  = 0;
            int num2 = 0;

            num  = Convert.ToInt32(context.Request["PageSize"]);
            num2 = Convert.ToInt32(context.Request["Page"]);
            string            text        = null;
            string            productCode = null;
            string            keywords    = null;
            ProductSaleStatus saleStatus  = ProductSaleStatus.All;

            if (!string.IsNullOrWhiteSpace(context.Request["GoodsType"]))
            {
                text = context.Request["GoodsType"];
                if (text.Equals("Onsale"))
                {
                    saleStatus = ProductSaleStatus.OnSale;
                }
                else if (text.Equals("InStock"))
                {
                    saleStatus = ProductSaleStatus.OnStock;
                }
            }
            if (!string.IsNullOrWhiteSpace(context.Request["OuterID"]))
            {
                productCode = context.Request["OuterID"];
            }
            else if (!string.IsNullOrWhiteSpace(context.Request["GoodsName"]))
            {
                keywords = context.Request["GoodsName"];
            }
            ProductQuery productQuery = new ProductQuery
            {
                Keywords    = keywords,
                ProductCode = productCode,
                PageSize    = num,
                PageIndex   = num2,
                SortOrder   = SortAction.Desc,
                SortBy      = "DisplaySequence",
                SaleStatus  = saleStatus,
                SupplierId  = 0
            };

            Globals.EntityCoding(productQuery, true);
            DbQueryResult products      = ProductHelper.GetProducts(productQuery);
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            stringBuilder.Append("<Goods>");
            stringBuilder.Append($"<TotalCount>{products.TotalRecords}</TotalCount>");
            stringBuilder.Append("<Result>1</Result>");
            stringBuilder.Append("<Cause></Cause>");
            DataTable data = products.Data;

            for (int i = 0; i < data.Rows.Count; i++)
            {
                stringBuilder.Append("<Ware>");
                int num3 = Convert.ToInt32(data.Rows[i]["ProductId"]);
                int num4 = Convert.ToInt32(data.Rows[i]["HasSKU"]);
                stringBuilder.Append($"<ItemID>{num3}</ItemID>");
                stringBuilder.Append(string.Format("<ItemName><![CDATA[{0}]]></ItemName>", data.Rows[i]["ProductName"]));
                stringBuilder.Append(string.Format("<OuterID><![CDATA[{0}]]></OuterID>", data.Rows[i]["ProductCode"]));
                stringBuilder.Append(string.Format("<Price>{0}</Price>", data.Rows[i]["SalePrice"]));
                stringBuilder.Append(string.Format("<Num>{0}</Num>", data.Rows[i]["Stock"]));
                stringBuilder.Append($"<IsSku>{num4}</IsSku>");
                stringBuilder.Append("<Items>");
                if (num4 > 0)
                {
                    DataTable dataTable = ProductBrowser.ApiGetSkusByProductId(num3);
                    for (int j = 0; j < dataTable.Rows.Count; j++)
                    {
                        stringBuilder.Append("<Item>");
                        stringBuilder.Append(string.Format("<Unit>{0}</Unit>", dataTable.Rows[j]["valuestr"]));
                        stringBuilder.Append(string.Format("<SkuID>{0}</SkuID>", dataTable.Rows[j]["skuId"]));
                        stringBuilder.Append(string.Format("<Num>{0}</Num>", dataTable.Rows[j]["Stock"]));
                        stringBuilder.Append(string.Format("<SkuOuterID>{0}</SkuOuterID>", dataTable.Rows[j]["SKU"]));
                        stringBuilder.Append(string.Format("<SkuPrice>{0}</SkuPrice>", dataTable.Rows[j]["SalePrice"]));
                        stringBuilder.Append("</Item>");
                    }
                }
                stringBuilder.Append("</Items>");
                stringBuilder.Append("</Ware>");
            }
            stringBuilder.Append("</Goods>");
            return(stringBuilder.ToString());
        }