/// <summary> /// 替换工艺实体 /// </summary> /// <param name="sourceCraftEntityId">源工艺实体Id</param> /// <param name="targetCraftEntityId">模板工艺实体Id</param> /// <param name="costPrice">新工艺成本价</param> public void ReplaceCraft(Guid sourceCraftEntityId, Guid targetCraftEntityId, decimal costPrice) { DecorationPackCraft currentPackCraft = this.GetPackCraft(sourceCraftEntityId); currentPackCraft.ReplaceCraft(targetCraftEntityId, costPrice); //挂起领域事件 处理套餐上是否包含下架|变价商品|工艺属性 //EventMediator.Suspend(new PackShelvedChangedEvent(this.PackId)); }
/// <summary> /// 删除套餐工艺 /// </summary> /// <param name="craftId"></param> public void RemoveCraft(Guid craftId) { DecorationPackCraft currentPackCraft = this.GetPackCraft(craftId); //非默认移除 if (!currentPackCraft.Default) { this.PackCraftEntities.Remove(currentPackCraft); } }
/// <summary> /// 获取套餐模板工艺项 /// </summary> /// <param name="craftEntityId">工艺实体Id</param> /// <returns>套餐模板工艺项</returns> public DecorationPackCraft GetPackCraft(Guid craftEntityId) { DecorationPackCraft packCraft = this.PackCraftEntities.SingleOrDefault(x => x.CraftEntityId == craftEntityId); #region # 验证 if (packCraft == null) { throw new ArgumentOutOfRangeException("craftEntityId", string.Format("选区下不存在Id为\"{0}\"的工艺实体!", craftEntityId)); } #endregion return(packCraft); }
/// <summary> /// 设置默认工艺工程量放置位置 /// </summary> /// <param name="defaultCraftId">默认CraftId</param> /// <param name="craftQuantity">默认工艺工程量</param> /// <param name="skuCraftPositions">放置位置</param> public void SetDefaultCraftQuantity(Guid defaultCraftId, decimal craftQuantity, Dictionary <SkuCraftPosition, decimal> skuCraftPositions) { DecorationPackCraft packCraft = this.GetPackCraft(defaultCraftId); packCraft.SetDefaultCraftPositions(craftQuantity, skuCraftPositions); }