/// <summary> /// 将产生的实体添加到实体上下文。 /// </summary> /// <param name="common">公共订单实体</param> /// <param name="extended">扩展订单实体</param> private void AddEntitiesToContext(PUB_ORDERS_COMMON common, PUB_ORDERS_EXTENDED extended) { dynamic context = this.DbContext; if (common == null) { throw new Exception("PUB_ORDERS_COMMON是null值,未能创建订单!"); } context.PUB_ORDERS_COMMON.Add(common); if (extended != null) { context.PUB_ORDERS_EXTENDED.Add(extended); } }
/// <summary> /// /// /// </summary> /// <param name="order">订单信息</param> /// <param name="extend"></param> /// <returns></returns> /// <summary> /// 创建1对1表的扩展部份。(如无用到此函数可不需重载。) /// </summary> /// <param name="extend">订单扩展信息</param> /// <param name="puborderscommon">订单公共信息实体</param> /// <returns>订单扩展实体</returns> protected virtual PUB_ORDERS_EXTENDED CreateOrderItemExtendedEntity(OrderItem item, PUB_ORDERS_COMMON orderitemcommon) { PUB_ORDERS_EXTENDED extenddb = default(PUB_ORDERS_EXTENDED); if (item != null) { dynamic extenddynamic = new PUB_ORDERS_EXTENDED(); dynamic ordercommon = orderitemcommon; extenddynamic.ORDER_ID = ordercommon.ORDER_ID; extenddynamic.ORDER_TYPE = (Int16)ordercommon.ORDER_TYPE; extenddynamic.CREATE_DATE = ordercommon.CREATE_DATE; extenddb = extenddynamic; } return(extenddb); }
//public OrderManagerBase(Context context) //{ // _dbContext = context; //} #endregion #region 创建订单 /// <summary> /// 创建店铺订单。 /// </summary> /// <param name="orderitems">订单明细项。</param> /// <returns>订单结果。</returns> private OrderGroupResult CreateStoreOrder(List <OrderItem> orderitems) { if (orderitems.Count == 0) { throw new Exception("不存在订单明细项(订单项为0),无法创建订单"); } var storeId = orderitems.Select(o => this.GetStoreInfo(o).StoreId).Distinct(); if (storeId.Count() > 1) { throw new Exception("所选的商品列表存在不同的商家,不充许创建订单!"); } PUB_ORDERS_GROUP groupentity = this.CreateOrderGroup(orderitems); dynamic groupdynamic = groupentity; //创建返回结果 OrderGroupResult result = new OrderGroupResult(); result.Items = new List <OrderItemResult>(); dynamic dbcontext = this.DbContext; dbcontext.PUB_ORDERS_GROUP.Add(groupentity); foreach (var orderitem in orderitems) { PUB_ORDERS_COMMON commonentity = this.CreateOrderCommon(orderitem, groupdynamic); PUB_ORDERS_EXTENDED extendentity = this.CreateOrderItemExtendedEntity(orderitem, commonentity); this.AddEntitiesToContext(commonentity, extendentity); this.CreateAndAddOrderItemMoreDetail(orderitem, commonentity); dynamic commonentitydynamic = commonentity; OrderItemResult itemresult = new OrderItemResult(); itemresult.OrderId = commonentitydynamic.ORDER_ID; itemresult.ItemName = commonentitydynamic.PRODUCT_NAME; itemresult.Amount = commonentitydynamic.TOTAL_AMOUNT; itemresult.Price = commonentitydynamic.PRODUCT_PRICE; itemresult.Qty = commonentitydynamic.PRODUCT_QUANTITY; itemresult.StoreId = commonentitydynamic.STORE_ID; itemresult.StoreName = commonentitydynamic.STORE_NAME; result.Items.Add(itemresult); } result.GroupId = groupdynamic.ORDER_GROUP_ID; result.TotalAmount = groupdynamic.TOTAL_AMOUNT; return(result); }