public string AddOrder(OrderMasterInputDto input)
        {
            var carts   = _cartSerivce.ListShoppingCartDtoByCustomerNo(UserNo).FindAll(m => m.CartSelected);
            var sales   = _productService.ListProductSalesByProductNos(carts.Select(c => c.ProductNo));
            var photos  = _productService.ListProductPhotosByProductNos(carts.Select(c => c.ProductNo));
            var product = _productService.ListProductAll().FindAll(m => carts.Select(c => c.ProductNo).Contains(m.ProductNo));
            var orderNo = _orderService.AddOrder(UserNo, input, carts, sales, photos, product);

            SendSocket(orderNo);
            return("success|" + orderNo);
        }
 public string AddOrder(string custormerNo,
                        OrderMasterInputDto inputDto,
                        List <ShoppingCartDto> cartsDto,
                        List <ProductSales> productSales,
                        List <ProductPhotos> productPhotos,
                        List <Products> products)
 {
     //将这三部包含在事务中
     using (TransactionScope ts = new TransactionScope())
     {
         try
         {
             //添加主订单
             DateTime         inputDate = DateTime.Now;
             string           orderNo   = Guid.NewGuid().ToString();
             SaleOrderMasters master    = new SaleOrderMasters
             {
                 CustomerNo   = custormerNo,
                 DeliveryDate = inputDto.DeliveryDate,
                 EditUserNo   = custormerNo,
                 InputDate    = inputDate,
                 InvoiceNo    = inputDto.InvoiceNo,
                 Remark       = inputDto.Remark,
                 SaleOrderNo  = orderNo,
                 StockNo      = "",
             };
             _orderMasterRepository.Insert(master);
             //添加订单流程
             AddProgress(orderNo);
             //添加订单详情(再订单详情中 删除相应物品的购物车信息)
             var carts = _mapper.Map <List <ShoppingCarts> >(cartsDto);
             AddOrderDetail(custormerNo, carts, productSales, productPhotos, products, inputDate, orderNo);
             ts.Complete();
             return(orderNo);
         }
         catch (System.Exception ex)
         {
             ts.Dispose();
             throw ex;
         }
     }
 }