private void DisplayProperControls(ProductProperty prop) { ProductPropertyType typeCode = prop.TypeCode; this.pnlChoiceControls.Visible = false; pnlCultureCode.Visible = false; this.DefaultDate.Visible = false; switch (typeCode) { case ProductPropertyType.CurrencyField: pnlCultureCode.Visible = true; DefaultValueField.Visible = true; lstDefaultValue.Visible = false; ChoiceNote.InnerText = "Default Value"; break; case ProductPropertyType.DateField: DefaultValueField.Visible = false; lstDefaultValue.Visible = false; this.DefaultDate.Visible = true; ChoiceNote.InnerText = "Default Value"; break; case ProductPropertyType.MultipleChoiceField: lstDefaultValue.Visible = true; DefaultValueField.Visible = false; PopulateMultipleChoice(prop); ChoiceNote.InnerText = "To select a default simply select the item in the list before you hit save."; this.pnlChoiceControls.Visible = true; break; case ProductPropertyType.TextField: DefaultValueField.Visible = true; lstDefaultValue.Visible = false; ChoiceNote.InnerText = "Default Value"; break; } }
public ProductPropertyValue Sync(int productId, string channelPropertyValueName, string channelPropertyValueId, ProductPropertyType productPropertyType) { using (var db = new YintaiHZhouContext()) { // 是否为颜色 var isColor = productPropertyType == ProductPropertyType.Color; // 映射类型 var mapType = isColor ? ChannelMapType.ColorId : ChannelMapType.SizeId; /** * 映射商品颜色或尺寸的属性值Id * 映射关系{productId}+{propertyValueId} */ var mapKey = Utils.GetProductProprtyMapKey(productId, channelPropertyValueId); var propertyValueMap = _channelMapper.GetMapByChannelValue(mapKey, mapType); var valueDesc = string.IsNullOrWhiteSpace(channelPropertyValueName) ? channelPropertyValueId : channelPropertyValueName; if (propertyValueMap == null) { // 检查当前商品是否存在颜色或尺寸的属性 var propertyExt = GetProductProperty(productId, mapType); if (propertyExt == null) { // 没有映射关系进行创建属性 propertyExt = new ProductProperty() { IsColor = isColor, IsSize = !isColor, ChannelPropertyId = 0, ProductId = productId, PropertyDesc = isColor ? "颜色" : "尺寸", SortOrder = 0, Status = 1, UpdateDate = DateTime.Now, UpdateUser = SystemDefine.SystemUser }; db.ProductProperties.Add(propertyExt); // 必须先进性保存,获取上面的Last_Update_id db.SaveChanges(); } var ppv = db.ProductPropertyValues.FirstOrDefault( p => p.PropertyId == propertyExt.Id && p.ValueDesc == valueDesc); if (ppv == null) { var newProductPropertyValue = new ProductPropertyValue() { PropertyId = propertyExt.Id, CreateDate = DateTime.Now, Status = 1, UpdateDate = DateTime.Now, ValueDesc = valueDesc }; db.ProductPropertyValues.Add(newProductPropertyValue); // 保存属性值 db.SaveChanges(); ppv = newProductPropertyValue; // 保存映射关系 var newChannelMap = new ChannelMap() { LocalId = ppv.Id, ChannnelValue = Utils.GetProductProprtyMapKey(productId, channelPropertyValueId), MapType = mapType }; _channelMapper.CreateMap(newChannelMap); } return(ppv); } var propertyValueExt = GetProductPropertyValue(productId, propertyValueMap.LocalId, mapType); if (propertyValueExt == null) { _channelMapper.RemoveMap(propertyValueMap); Log.ErrorFormat("属性数据错误,映射关系存在,数据不存在, property value id {0}", propertyValueMap.LocalId); return(null); } propertyValueExt.ValueDesc = valueDesc; propertyValueExt.UpdateDate = DateTime.Now; db.SaveChanges(); return(propertyValueExt); } }