Ejemplo n.º 1
0
        /// <summary>
        ///     构建商品类型属性记录
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private dynamic BuildAddProductTypeAttrRecord(SKU_ProductTypeAttributeModel model)
        {
            dynamic record = new SimpleRecord();

            record.SKU_ProductTypeAttributeId = model.SKU_ProductTypeAttributeId;
            record.AttributeId     = model.AttributeId;
            record.SkuTypeId       = model.SkuTypeId;
            record.AttributeType   = model.AttributeType;
            record.AttributeGroup  = model.AttributeGroup;
            record.DisplaySequence = model.DisplaySequence;
            record.UpdateBy        = model.UpdateBy;
            record.UpdateDT        = model.UpdateDT;
            return(record);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     构建商品类型属性
        /// </summary>
        /// <param name="queryResult">查询结果</param>
        /// <param name="attrbuteType">属性类型</param>
        /// <returns></returns>
        private List <SKU_ProductTypeAttributeModel> GenerateProductTypeAttributes(List <dynamic> queryResult,
                                                                                   int attrbuteType)
        {
            var productTypeAttributeModels = new List <SKU_ProductTypeAttributeModel>();


            var pTypeIds = new List <long>();

            //0:SKU属性,1:扩展属性,2:参数表

            if (queryResult != null && queryResult != null)
            {
                SKU_ProductTypeAttributeModel tempModel = null;

                foreach (var record in queryResult)
                {
                    if (record.b_AttributeType == attrbuteType)
                    {
                        //不存在该记录
                        if (!pTypeIds.Contains(record.b_SKU_ProductTypeAttributeId))
                        {
                            tempModel = new SKU_ProductTypeAttributeModel
                            {
                                SKU_ProductTypeAttributeId = record.b_SKU_ProductTypeAttributeId,
                                AttributeId     = record.b_AttributeId,
                                SkuTypeId       = record.b_SkuTypeId,
                                AttributeType   = record.b_AttributeType,
                                AttributeGroup  = record.b_AttributeGroup,
                                DisplaySequence = record.b_DisplaySequence,
                                CreateBy        = record.b_CreateBy,
                                CreateDT        = record.b_CreateDT,
                                UpdateBy        = record.b_UpdateBy,
                                UpdateDT        = record.b_UpdateDT
                            };

                            //属性名
                            SKU_AttributesModel attributeModel = this.GenerateAttributesReocrd(record);
                            tempModel.SKU_AttributesModel = attributeModel;

                            if (record.d_ValueId != null)
                            {
                                //添加属性值
                                attributeModel.SKU_AttributeValuesModels.Add(this.GenerateAttributesValueReocrd(record));
                            }
                            pTypeIds.Add(record.b_SKU_ProductTypeAttributeId);

                            productTypeAttributeModels.Add(tempModel);
                        }
                        else
                        {
                            tempModel =
                                productTypeAttributeModels.FirstOrDefault(
                                    x => x.SKU_ProductTypeAttributeId == record.b_SKU_ProductTypeAttributeId);
                            if (record.d_ValueId != null)
                            {
                                tempModel.SKU_AttributesModel.SKU_AttributeValuesModels.Add(
                                    this.GenerateAttributesValueReocrd(record));
                            }
                        }
                    }
                }
            }

            productTypeAttributeModels.ForEach(x =>
            {
                x.SKU_AttributesModel.SKU_AttributeValuesModels =
                    x.SKU_AttributesModel.SKU_AttributeValuesModels.OrderBy(y => y.DisplaySequence).ToList();
                x.SKU_AttributesModel.ValuesString =
                    string.Join(",", x.SKU_AttributesModel.SKU_AttributeValuesModels.Select(y => y.ValueStr));
            });

            productTypeAttributeModels = productTypeAttributeModels.OrderBy(x => x.DisplaySequence).ToList();

            return(productTypeAttributeModels);
        }