public void GetProductAttrList()
        {
            int num = 0;

            int.TryParse(this.context.Request["CombinationId"], out num);
            string text = this.context.Request["ProductIds"];

            if (num != 0 && !string.IsNullOrEmpty(text))
            {
                if (HiContext.Current.UserId == 0)
                {
                    this.context.Response.ContentType = "text/json";
                    this.context.Response.Write("{\"error\":\"noLogin\"}");
                }
                else
                {
                    StringBuilder stringBuilder  = new StringBuilder();
                    SiteSettings  masterSettings = SettingsManager.GetMasterSettings();
                    stringBuilder.Append("[");
                    DataTable combinationProducts = CombinationBuyHelper.GetCombinationProducts(num, text);
                    for (int i = 0; i < combinationProducts.Rows.Count; i++)
                    {
                        stringBuilder.Append("{");
                        stringBuilder.AppendFormat("\"ProductId\":\"{0}\",", combinationProducts.Rows[i]["ProductId"]);
                        stringBuilder.AppendFormat("\"ProductName\":\"{0}\",", combinationProducts.Rows[i]["ProductName"]);
                        string arg = string.IsNullOrEmpty(combinationProducts.Rows[i]["ThumbnailUrl40"].ToString()) ? masterSettings.DefaultProductThumbnail1 : combinationProducts.Rows[i]["ThumbnailUrl40"].ToString();
                        stringBuilder.AppendFormat("\"ThumbnailUrl40\":\"{0}\",", arg);
                        string arg2 = string.IsNullOrEmpty(combinationProducts.Rows[i]["ThumbnailUrl100"].ToString()) ? masterSettings.DefaultProductThumbnail3 : combinationProducts.Rows[i]["ThumbnailUrl100"].ToString();
                        stringBuilder.AppendFormat("\"ThumbnailUrl100\":\"{0}\",", arg2);
                        stringBuilder.AppendFormat("\"MinCombinationPrice\":\"{0}\",", combinationProducts.Rows[i]["MinCombinationPrice"]);
                        stringBuilder.AppendFormat("\"AllStock\":\"{0}\",", combinationProducts.Rows[i]["AllStock"]);
                        stringBuilder.AppendFormat("\"SingleSkuId\":\"{0}\",", combinationProducts.Rows[i]["SingleSkuId"]);
                        int       productId          = int.Parse(combinationProducts.Rows[i]["ProductId"].ToString());
                        DataTable skuItemByProductId = CombinationBuyHelper.GetSkuItemByProductId(productId);
                        if (skuItemByProductId != null && skuItemByProductId.Rows.Count > 0)
                        {
                            stringBuilder.Append("\"details\":[");
                            for (int j = 0; j < skuItemByProductId.Rows.Count; j++)
                            {
                                stringBuilder.Append("{");
                                stringBuilder.AppendFormat("\"SkuId\":\"{0}\",", skuItemByProductId.Rows[j]["SkuId"]);
                                stringBuilder.AppendFormat("\"AttributeId\":\"{0}\",", skuItemByProductId.Rows[j]["AttributeId"]);
                                stringBuilder.AppendFormat("\"AttributeName\":\"{0}\",", skuItemByProductId.Rows[j]["AttributeName"]);
                                stringBuilder.AppendFormat("\"UseAttributeImage\":\"{0}\",", skuItemByProductId.Rows[j]["UseAttributeImage"]);
                                stringBuilder.AppendFormat("\"ValueId\":\"{0}\",", skuItemByProductId.Rows[j]["ValueId"]);
                                stringBuilder.AppendFormat("\"ValueStr\":\"{0}\",", skuItemByProductId.Rows[j]["ValueStr"]);
                                stringBuilder.AppendFormat("\"ImageUrl\":\"{0}\",", skuItemByProductId.Rows[j]["ImageUrl"]);
                                stringBuilder.AppendFormat("\"ThumbnailUrl40\":\"{0}\",", skuItemByProductId.Rows[j]["ThumbnailUrl40"]);
                                stringBuilder.AppendFormat("\"ThumbnailUrl410\":\"{0}\"", skuItemByProductId.Rows[j]["ThumbnailUrl410"]);
                                if (j == skuItemByProductId.Rows.Count - 1)
                                {
                                    stringBuilder.Append("}");
                                }
                                else
                                {
                                    stringBuilder.Append("},");
                                }
                            }
                            stringBuilder.Append("]");
                        }
                        else
                        {
                            stringBuilder.Append("\"details\":[]");
                        }
                        if (i == combinationProducts.Rows.Count - 1)
                        {
                            stringBuilder.Append("}");
                        }
                        else
                        {
                            stringBuilder.Append("},");
                        }
                    }
                    stringBuilder.Append("]");
                    this.context.Response.ContentType = "text/json";
                    this.context.Response.Write(stringBuilder);
                }
            }
        }