コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        //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);
        }