Ejemplo n.º 1
0
        public void TestInsertOrder()
        {
            var insertOrderCallback = new DataCallback <OrderInfo>((DataResult <OrderInfo> result) =>
            {
                OrderInfo orderInfo = new OrderInfo();
                orderInfo           = result.Result;
                if (result.IsSuccess)
                {
                    Console.WriteLine("下单成功, OrderRef:{0}, OrderSysID:{1}", orderInfo.OrderRef, orderInfo.OrderSysID);
                }
                Assert.IsTrue(result.IsSuccess);
            });
            OrderParameter order = new OrderParameter();

            order.InstrumentID        = "TF1809";
            order.OrderRef            = "1";
            order.Direction           = DirectionType.Buy;
            order.PriceType           = OrderPriceType.LimitPrice;
            order.OpenCloseFlag       = OpenCloseFlag.Open;
            order.HedgeFlag           = HedgeFlag.Speculation;
            order.Price               = 97.260M;
            order.Quantity            = 1;
            order.TimeCondition       = TimeConditionType.GFD;
            order.VolumeCondition     = VolumeConditionType.AV;
            order.MinVolume           = 1;
            order.ContingentCondition = ContingentConditionType.Immediately;
            order.ForceCloseReason    = ForceCloseReasonType.NotForceClose;
            order.IsAutoSuspend       = 0;
            order.UserForceClose      = 0;

            _adapter.InsertOrder(insertOrderCallback, order);
            Thread.Sleep(100);
        }
Ejemplo n.º 2
0
        public void WithPagination_Should_Set_Pagination(FakeParameters parameters, OrderParameter <string> order, PaginationParameter pagination)
        {
            // Arrange
            var builder = new TestedBuilder();

            // Act
            var result = builder.Begin()
                         .WithParameters(parameters)
                         .WithOrder(order)
                         .WithPagination(pagination)
                         .Build();

            // Assert
            Check.That(result.Parameters.HasValue)
            .IsTrue();
            Check.That(result.Parameters.Value)
            .IsEqualTo(parameters);

            Check.That(result.Order.HasValue)
            .IsTrue();
            Check.That(result.Order.Value)
            .IsEqualTo(order);

            Check.That(result.Pagination.HasValue)
            .IsTrue();
            Check.That(result.Pagination.Value)
            .IsEqualTo(pagination);
        }
Ejemplo n.º 3
0
        public void TestInsertParkedOrder()
        {
            var insertParkedOrderCallback = new DataCallback <ParkedOrderInfo>((DataResult <ParkedOrderInfo> result) =>
            {
                if (result.IsSuccess)
                {
                    Console.WriteLine("预埋单录入成功,ParkedOrderID:{0}", result.Result.ParkedOrderID);
                }
                else
                {
                    Console.WriteLine("预埋单录入失败:{0}", result.Error);
                }
                Assert.IsTrue(result.IsSuccess);
            });
            OrderParameter field = new OrderParameter();

            field.InstrumentID        = "TF1809";
            field.OrderRef            = "1";
            field.Direction           = DirectionType.Buy;
            field.PriceType           = OrderPriceType.LimitPrice;
            field.OpenCloseFlag       = OpenCloseFlag.Open;
            field.HedgeFlag           = HedgeFlag.Speculation;
            field.Price               = 97.010M;
            field.Quantity            = 1;
            field.TimeCondition       = TimeConditionType.GFD;
            field.VolumeCondition     = VolumeConditionType.AV;
            field.MinVolume           = 1;
            field.ContingentCondition = ContingentConditionType.Immediately;
            field.ForceCloseReason    = ForceCloseReasonType.NotForceClose;
            field.IsAutoSuspend       = 0;
            field.UserForceClose      = 0;

            _adapter.InsertParkedOrder(insertParkedOrderCallback, field);
            Thread.Sleep(200);
        }
Ejemplo n.º 4
0
 private void AddOrderParameter(OrderParameter param)
 {
     if (DefaultOrderParameters == null)
     {
         DefaultOrderParameters = new List <OrderParameter>();
     }
     DefaultOrderParameters.Add(param);
 }
Ejemplo n.º 5
0
        public void TestCancelParkedOrder()
        {
            var insertParkedOrderCallback = new DataCallback <ParkedOrderInfo>((DataResult <ParkedOrderInfo> result) =>
            {
                ParkedOrderInfo pParkedOrder = new ParkedOrderInfo();
                pParkedOrder = result.Result;
                if (result.IsSuccess)
                {
                    var cancelParkedOrderCallback = new DataCallback <ParkedOrderInfo>((DataResult <ParkedOrderInfo> cancelParkedOrderResult) =>
                    {
                        pParkedOrder = cancelParkedOrderResult.Result;
                        if (cancelParkedOrderResult.IsSuccess)
                        {
                            Console.WriteLine("预埋撤单录入成功,ParkedOrderActionID:{0}", pParkedOrder.ParkedOrderActionID);
                        }
                        else
                        {
                            Console.WriteLine("预埋撤单录入失败:{0}", cancelParkedOrderResult.Error);
                        }
                        Assert.IsTrue(cancelParkedOrderResult.IsSuccess);
                    });
                    CancelOrderParameter fieldAction = new CancelOrderParameter();
                    fieldAction.ActionFlag           = ActionFlag.Delete;
                    fieldAction.InstrumentID         = pParkedOrder.InstrumentID;
                    fieldAction.OrderRef             = pParkedOrder.OrderRef;
                    fieldAction.ExchangeID           = pParkedOrder.ExchangeID;
                    fieldAction.OrderSysID           = new string('\0', 21 - pParkedOrder.OrderSysID.Length) + pParkedOrder.OrderSysID;

                    _adapter.CancelParkedOrder(cancelParkedOrderCallback, fieldAction);
                    Thread.Sleep(50);
                }
                else
                {
                    Console.WriteLine("预埋单录入失败:", result.Error);
                }
                Assert.IsTrue(result.IsSuccess);
            });
            OrderParameter field = new OrderParameter();

            field.InstrumentID        = "TF1809";
            field.OrderRef            = "1";
            field.Direction           = DirectionType.Buy;
            field.PriceType           = OrderPriceType.LimitPrice;
            field.OpenCloseFlag       = OpenCloseFlag.Open;
            field.HedgeFlag           = HedgeFlag.Speculation;
            field.Price               = 97.010M;
            field.Quantity            = 1;
            field.TimeCondition       = TimeConditionType.GFD;
            field.VolumeCondition     = VolumeConditionType.AV;
            field.MinVolume           = 1;
            field.ContingentCondition = ContingentConditionType.Immediately;
            field.ForceCloseReason    = ForceCloseReasonType.NotForceClose;
            field.IsAutoSuspend       = 0;
            field.UserForceClose      = 0;

            _adapter.InsertParkedOrder(insertParkedOrderCallback, field);
            Thread.Sleep(200);
        }
Ejemplo n.º 6
0
        private void AddBooleanParam(OrderParameterType paramType, OrderParameter param)
        {
            SwitchCell switchCell = new SwitchCell {
                Text = paramType.Name,
                On   = param.Value == "True"
            };

            switchCell.OnChanged += (sender, e) => {
                param.Value = switchCell.On ? "True" : "False";
            };
            LastSection.Add(switchCell);
        }
Ejemplo n.º 7
0
 public ActionResult OrderAdd(OrderParameter param)
 {
     try
     {
         return(Json(OrdersLogic.getInstance().Add(param), JsonRequestBehavior.AllowGet));
     }
     catch (Exception e)
     {
         Logging.Log.getInstance().CreateLogError(e);
         return(Json(e.Message, JsonRequestBehavior.AllowGet));
     }
 }
Ejemplo n.º 8
0
        public ActionResult UpdateOrder([FromBody] OrderParameter orderParameter)
        {
            var userId = int.Parse(User.Claims.FirstOrDefault(x => x.Type == WsConstants.UserIdClaim)?.Value ?? "-1");
            var order  = _orderService.UpdateOrder(orderParameter, userId);

            if (order != null)
            {
                return(Ok(order));
            }

            return(StatusCode(500));
        }
        public ProductPriceCalculationMainViewModel(
            ProductTypesRepository repository,
            Product.ProductType productType,
            OrderParameter orderParameter,
            ProductCalculationResult calculationResult)
        {
            _repository        = repository;
            _productType       = productType;
            _orderParameter    = orderParameter;
            _calculationResult = calculationResult;

            ProductType = ProductTypeOptions.First();
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 生成订单信息
        /// </summary>
        /// <returns></returns>
        public int GenerateOrder(OrderParameter parameter)
        {
            int res = 0;


            using (IDbConnection conn = new SqlConnection()
            {
                ConnectionString = "Data Source =.; Initial Catalog = TakeOutDB; Integrated Security = True"
            })
            {
                res = conn.Execute("GenerateOrder", parameter, commandType: CommandType.StoredProcedure);
            }
            return(res);
        }
Ejemplo n.º 11
0
        public void TestCancelOrder()
        {
            var insertOrderCallback = new DataCallback <OrderInfo>((DataResult <OrderInfo> result) =>
            {
                OrderInfo orderInfo = new OrderInfo();
                orderInfo           = result.Result;
                if (result.IsSuccess)
                {
                    var cancelOrderCallback = new DataCallback <OrderInfo>((DataResult <OrderInfo> cancelOrderResult) =>
                    {
                        orderInfo = cancelOrderResult.Result;
                        if (cancelOrderResult.IsSuccess)
                        {
                            Console.WriteLine("撤单成功,OrderRef:{0}, InstrumentID:{1}", orderInfo.OrderRef, orderInfo.InstrumentID);
                        }
                        Assert.IsTrue(cancelOrderResult.IsSuccess);
                    });
                    CancelOrderParameter field = new CancelOrderParameter();
                    field.ActionFlag           = ActionFlag.Delete;
                    field.InstrumentID         = "TF1809";
                    field.OrderRef             = orderInfo.OrderRef;
                    field.ExchangeID           = orderInfo.ExchangeID;
                    field.OrderSysID           = new string('\0', 21 - orderInfo.OrderSysID.Length) + orderInfo.OrderSysID;

                    _adapter.CancelOrder(cancelOrderCallback, field);
                    Thread.Sleep(50);
                }
                Assert.IsTrue(result.IsSuccess);
            });
            OrderParameter order = new OrderParameter();

            order.InstrumentID        = "TF1809";
            order.OrderRef            = "1";
            order.Direction           = DirectionType.Buy;
            order.PriceType           = OrderPriceType.LimitPrice;
            order.OpenCloseFlag       = OpenCloseFlag.Open;
            order.HedgeFlag           = HedgeFlag.Speculation;
            order.Price               = 97.270M;
            order.Quantity            = 1;
            order.TimeCondition       = TimeConditionType.GFD;
            order.VolumeCondition     = VolumeConditionType.AV;
            order.MinVolume           = 1;
            order.ContingentCondition = ContingentConditionType.Immediately;
            order.ForceCloseReason    = ForceCloseReasonType.NotForceClose;
            order.IsAutoSuspend       = 0;
            order.UserForceClose      = 0;

            _adapter.InsertOrder(insertOrderCallback, order);
            Thread.Sleep(200);
        }
Ejemplo n.º 12
0
        private void AddParameter(OrderParameterType paramType, OrderParameter param = null)
        {
            if (param == null)
            {
                param = new OrderParameter();
                switch (paramType.DataType)
                {
                case OrderType.DataTypes.Integer:
                    param.Value = "0";
                    break;

                case OrderType.DataTypes.Boolean:
                    param.Value = "False";
                    break;

                case OrderType.DataTypes.String:
                    param.Value = "";
                    break;

                default:
                    param.Value = "";
                    break;
                }
                CurrentOrder.Parameters.Add(param);
            }
            if (paramType.InfoType > 0)
            {
                AddInfoParam(paramType, param);
                return;
            }
            switch (paramType.DataType)
            {
            case OrderType.DataTypes.Integer:
                AddIntegerParam(paramType, param);
                break;

            case OrderType.DataTypes.String:
                AddStringParam(paramType, param);
                break;

            case OrderType.DataTypes.Boolean:
                AddBooleanParam(paramType, param);
                break;

            default:
                AddIntegerParam(paramType, param);
                break;
            }
        }
Ejemplo n.º 13
0
        public static IPostOrderFilter GetPostOrderFilter(OrderParameter orderParameter, SearchDiaryRequest searchRequest)
        {
            switch (orderParameter)
            {
            case OrderParameter.MOST_VIEWED:
                if (searchRequest.SearchParameters.Count > 0)
                {
                    return(new PostMostViewedOrderFilter());
                }
                return(null);

            default:
                return(null);
            }
        }
Ejemplo n.º 14
0
        private void AddStringParam(OrderParameterType paramType, OrderParameter param)
        {
            EntryCell entry = new EntryCell {
                Label = paramType.Name,
                Text  = param.Value
            };

            entry.PropertyChanged += (object sender, System.ComponentModel.PropertyChangedEventArgs e) => {
                if (e.PropertyName == "Text")
                {
                    param.Value = entry.Text;
                }
            };
            LastSection.Add(entry);
        }
        public void WithOrder_Should_Set_Order(FakeParameters parameters, OrderParameter <string> order)
        {
            // Arrange
            var builder = CreateBuilder();

            // Act
            var result = builder.Begin()
                         .WithParameters(parameters)
                         .WithOrder(order)
                         .Build();

            // Assert
            Check.That(result.Parameters)
            .IsEqualTo(parameters);
            Check.That(result.Order)
            .IsEqualTo(order);
        }
Ejemplo n.º 16
0
        public static IPreOrderFilter GetPreOrderFilter(OrderParameter orderParameter, SearchDiaryRequest searchRequest)
        {
            switch (orderParameter)
            {
            case OrderParameter.MOST_RECENT:
                return(new MostRecentFilter());

            case OrderParameter.MOST_VIEWED:
                if (searchRequest.SearchParameters.Count == 0)
                {
                    return(new PreMostViewedOrderFilter());
                }
                return(null);

            default:
                return(null);
            }
        }
Ejemplo n.º 17
0
        public OrderDto AddOrder(OrderParameter orderParameter, int userId)
        {
            var additionalIds = orderParameter.AdditioalFoodIds?.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x)) ?? new List <int>();

            var newOrder = new Order()
            {
                PrimaryFoodId    = orderParameter.PrimaryFoodId,
                AdditioalFoodIds = orderParameter.AdditioalFoodIds,
                OrderName        = this.GetFoodName(orderParameter.PrimaryFoodId, additionalIds),
                Reduced          = orderParameter.Reduced,
                Price            = this.GetTotalPrice(orderParameter.PrimaryFoodId, additionalIds) - orderParameter.Reduced,
                CreatedBy        = userId,
                CreatedAt        = DateTime.Now
            };

            _orderRepositories.AddOrder(newOrder);
            return(OrderDto.ToOrderDto(newOrder));
        }
Ejemplo n.º 18
0
        /// <summary>
        /// Successfully fetched data and should be processed by subclass
        /// </summary>
        /// <param name="xmlReader">Xml reader.</param>
        /// <param name="callback">Callback.</param>
        protected override void Success(XmlReader xmlReader, Action <IEnumerable <Order>, Exception> callback)
        {
            Log.WriteLine(Log.Layer.SAL, this.GetType(), "Success");

            List <Order> list = new List <Order> ();

            Order order = null;

            while (xmlReader.Read())
            {
                if (xmlReader.IsStartElement())
                {
                    try {
                        switch (xmlReader.Name)
                        {
                        case "order":
                            order = new Order {
                                PositionId  = PositionId,
                                OrderTypeId = Int32.Parse(xmlReader.GetAttribute("id")),
                            };
                            list.Add(order);
                            break;

                        case "param":
                            string value = null;
                            if (xmlReader.Read())
                            {
                                value = xmlReader.Value.Trim();
                            }
                            OrderParameter param = new OrderParameter {
                                Value = value
                            };
                            order.Parameters.Add(param);
                            break;
                        }
                    } catch (Exception e) {
                        Log.WriteLine(Log.Layer.SAL, this.GetType(), e);
                    }
                }
            }

            callback(list, null);
        }
Ejemplo n.º 19
0
        public OrderDto UpdateOrder(OrderParameter orderParameter, int userId)
        {
            var additionalIds = orderParameter.AdditioalFoodIds?.Split(',', StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x)) ?? new List <int>();

            var order = _orderRepositories.GetOrder(orderParameter.Id);

            if (order != null)
            {
                order.PrimaryFoodId    = orderParameter.PrimaryFoodId;
                order.AdditioalFoodIds = orderParameter.AdditioalFoodIds;
                order.OrderName        = this.GetFoodName(orderParameter.PrimaryFoodId, additionalIds);
                order.Reduced          = orderParameter.Reduced;
                order.Price            = this.GetTotalPrice(orderParameter.PrimaryFoodId, additionalIds) - orderParameter.Reduced;
                order.UpdatedBy        = userId;
                order.UpdatedAt        = DateTime.Now;
                return(OrderDto.ToOrderDto(_orderRepositories.UpdateOrder(order)));
            }

            return(null);
        }
Ejemplo n.º 20
0
        public ActionResult OrderEditor(OrderParameter parameter)
        {
            Order order;

            if (parameter.IsEdit())
            {
                order =
                    OrderRepository.Get(x => x.OrderId == parameter.OrderId, includedProperties: "OrderDetails,OrderStatus")
                    .FirstOrDefault();
            }
            else
            {
                order = CreateNewOrder(parameter);
            }
            ViewBag.CustomerList    = CustomerListItems();
            ViewBag.OrderStatusList = OrderStatusListItems();
            var orderDto = Mapper.Map <OrderDto>(order);

            return(PartialView(orderDto));
        }
Ejemplo n.º 21
0
        public string Add(OrderParameter order)
        {
            try
            {
                Guid guidId = Guid.NewGuid();
                db = new BMotionDBEntities();
                Order orderEntity = new Order();
                orderEntity.OrderNo     = guidId.ToString();
                orderEntity.NIP         = order.NIP;
                orderEntity.IsVerify    = "N";
                orderEntity.CreatedDate = DateTime.Now;
                orderEntity.CreatedBy   = orderEntity.NIP;
                orderEntity.ExpiredDate = DateTime.Now.AddHours(4);
                db.Orders.Add(orderEntity);
                db.SaveChanges();

                foreach (var item in order.Orders)
                {
                    db = new BMotionDBEntities();
                    int  n;
                    bool isNumeric = int.TryParse(item.Liter, out n);
                    if (isNumeric && n != 0)
                    {
                        OrderDetail orderDetailEntity = new OrderDetail();
                        orderDetailEntity.OrderNo     = orderEntity.OrderNo;
                        orderDetailEntity.FuelId      = Convert.ToInt32(item.FuelId);
                        orderDetailEntity.Liter       = n;
                        orderDetailEntity.CreatedDate = DateTime.Now;
                        orderDetailEntity.CreatedBy   = orderEntity.NIP;
                        db.OrderDetails.Add(orderDetailEntity);
                        db.SaveChanges();
                    }
                }
                return(guidId.ToString());
            }
            catch (Exception e)
            {
                Logging.Log.getInstance().CreateLogError(e);
                throw e;
            }
        }
Ejemplo n.º 22
0
        private Order CreateNewOrder(OrderParameter parameter)
        {
            Order order = new Order
            {
                CustomerId    = parameter.CustomerId.HasValue ? parameter.CustomerId.Value : 0,
                OrderDate     = DateTime.UtcNow,
                OrderStatusId = DataConstants.OrderStatus.Pending,
                OrderDetails  = new List <OrderDetail>
                {
                    new OrderDetail {
                        ProductTypeId = DataConstants.ProductTypes.Slim
                    },
                    new OrderDetail {
                        ProductTypeId = DataConstants.ProductTypes.Round
                    }
                }
            };

            order.OrderNumber = SettingsManager.GetNextOrderNumber();
            return(order);
        }
Ejemplo n.º 23
0
        private void ShowParameters()
        {
            if (CurrentOrder.OrderType.Parameters.Count < 1)
            {
                LastSection.Add(new TextCell {
                    Text = "No parameters"
                });
                return;
            }
            int i = 0;

            foreach (OrderParameterType pt in CurrentOrder.OrderType.Parameters)
            {
                OrderParameter param = null;
                if (i < CurrentOrder.Parameters.Count)
                {
                    param = CurrentOrder.Parameters [i];
                }
                AddParameter(pt, param);
                i += 1;
            }
        }
Ejemplo n.º 24
0
        public void BuyOrder(string ticker, int quality)
        {
            OrderParameter order = new OrderParameter();

            order.InstrumentID        = ticker;
            order.OrderRef            = (++_orderRef).ToString();
            order.Direction           = DirectionType.Buy;
            order.PriceType           = OrderPriceType.LimitPrice;
            order.OpenCloseFlag       = OpenCloseFlag.Open;
            order.HedgeFlag           = HedgeFlag.Speculation;
            order.Price               = 3520;
            order.Quantity            = quality;
            order.TimeCondition       = TimeConditionType.GFD;
            order.VolumeCondition     = VolumeConditionType.AV;
            order.MinVolume           = 1;
            order.ContingentCondition = ContingentConditionType.Immediately;
            order.ForceCloseReason    = ForceCloseReasonType.NotForceClose;
            order.IsAutoSuspend       = 0;
            order.UserForceClose      = 0;

            this.InsertOrder(CBInsertOrder, order);
        }
Ejemplo n.º 25
0
    public bool TryParse(string input, out OrderParameter result)
    {
        result = null;
        if (string.IsNullOrWhiteSpace(input))
        {
            return(false);
        }
        var parts = input.Split(',');

        result         = new OrderParameter();
        result.OrderBy = parts[0];
        int orderDirection;

        if (parts.Length > 1 && int.TryParse(parts[1], out orderDirection))
        {
            result.OrderDirection = orderDirection;
        }
        else
        {
            result.OrderDirection = 0;
        }
        return(true);
    }
Ejemplo n.º 26
0
        /// <summary>
        /// 生成订单信息
        /// </summary>
        /// <returns></returns>
        public int GenerateOrder(OrderParameter parameter)
        {
            int       res   = 0;
            OrderShow order = GetOrderShow(UserId, BusinessId);

            parameter.OrderId        = order.Id;
            parameter.TotalPrice     = order.TotalPrice;
            parameter.NickName       = order.NickName;
            parameter.Name           = order.Name;
            parameter.PhoneNumber    = order.PhoneNumber;
            parameter.BusinessNumber = order.BusinessNumber;
            parameter.Merchataddress = order.Merchataddress;
            parameter.Consignee      = parameter.Consignee == "" ? order.NickName : parameter.Consignee;
            parameter.ActivityId     = 1;

            using (IDbConnection conn = new SqlConnection()
            {
                ConnectionString = "Data Source =.; Initial Catalog = TakeOutDB; Integrated Security = True"
            })
            {
                res = conn.Execute("GenerateOrder", parameter, commandType: CommandType.StoredProcedure);
            }
            return(res);
        }
Ejemplo n.º 27
0
 /// <summary>
 /// 生成订单信息
 /// </summary>
 /// <returns></returns>
 public int GenerateOrder(OrderParameter parameter)
 {
     return(BaseDAL <OrderDAL> .Instance.GenerateOrder(parameter));
 }
Ejemplo n.º 28
0
 private void InfoEntryTextChanged(EntryCell entry, OrderParameterType paramType, OrderParameter param, Picker infoPicker)
 {
     param.Value = entry.Text;
     if (infoData.ContainsKey(paramType.InfoType))
     {
         Dictionary <string, InfoData> data = infoData [paramType.InfoType];
         if (data.Count > 0)
         {
             Task.Factory.StartNew(() => {
                 int i = 0;
                 foreach (string value in data.Keys)
                 {
                     if (entry.Text == data[value].NexusId.ToString())
                     {
                         if (infoPicker.Items.Count > i)
                         {
                             Device.BeginInvokeOnMainThread(() => {
                                 infoPicker.SelectedIndex = i;
                                 infoPicker.Title         = data[value].ToString();
                             });
                         }
                         break;
                     }
                     i += 1;
                 }
             });
         }
         else
         {
             Device.BeginInvokeOnMainThread(() => {
                 infoPicker.Title = param.Value;
             });
         }
     }
     else
     {
         Device.BeginInvokeOnMainThread(() => {
             infoPicker.Title = param.Value;
         });
     }
 }
Ejemplo n.º 29
0
 /// <summary>
 /// 生成订单
 /// </summary>
 /// <param name="order"></param>
 /// <returns></returns>
 public int OrderTran(OrderParameter order)
 {
     return(BaseDAL <OrderDAL> .Instance.OrderTran(order));
 }
Ejemplo n.º 30
0
        /// <summary>
        /// 生成订单
        /// </summary>
        /// <returns></returns>
        public int OrderTran(OrderParameter order)
        {
            using (IDbConnection conn = new SqlConnection(ConfigurationManager.AppSettings["conn"]))
            {
                conn.Open();
                IDbTransaction transaction = conn.BeginTransaction();
                try
                {
                    //添加购物车信息
                    StringBuilder sql = new StringBuilder(@"INSERT  dbo.OrderInfo
        ( UserId ,
          AddressId ,
          DataState ,
          Freight ,
          PackagingFee ,
          TablewareCount ,
          ActivityId ,
          TotalPrice ,
          Consignee ,
          BusinessInfo ,
          Sates ,
          CreateTime ,
          UpdateTime ,
          CreaterId ,
          UpdaterId
        )
VALUES  ( " + order.UserId + "," + order.AddressId + ",1,10,2,0,0," + order.TotalPrice + ",'" + order.Consignee + "'," + order.AddressId + ",1,GETDATE(),GETDATE(),1,1)");
                    conn.Execute(sql.ToString(), null, transaction);

                    //找到新添加的订单Id
                    StringBuilder sql1    = new StringBuilder("SELECT MAX(Id) FROM dbo.OrderInfo WHERE UserId=" + order.UserId + " AND [Sates]=1");
                    int           OrderId = Convert.ToInt32(conn.ExecuteScalar(sql1.ToString(), null, transaction));

                    //找到购物车表中要生成订单的数据
                    order.Ids = order.Ids.Replace('"', ' ');
                    order.Ids = order.Ids.Replace('[', ' ');
                    order.Ids = order.Ids.Replace(']', ' ');
                    StringBuilder    sql2  = new StringBuilder(@"SELECT cd.TasteId,cd.TypeId,cd.DetailsId,cd.Count FROM dbo.CartInfo AS c
JOIN dbo.CartDetails AS cd
ON c.Id=cd.CartId
WHERE c.UserId=" + order.UserId + " AND cd.Id IN(" + order.Ids + ") AND cd.Sates=1");
                    List <OrderList> lists = conn.Query <OrderList>(sql2.ToString(), null, transaction).ToList();

                    //将购物车表中的数据添加到订单详情表
                    foreach (var item in lists)
                    {
                        StringBuilder sql3 = new StringBuilder(@"    INSERT dbo.OrderDetails
            ( OrderId ,
              TypeId ,
              DetailsId ,
              Count ,
              TasteId ,
              Content ,
              Sates ,
              CreateTime ,
              UpdateTime ,
              CreaterId ,
              UpdaterId
            )
    VALUES  ( " + OrderId + "," + item.TypeId + "," + item.DetailsId + "," + item.Count + "," + item.TeasteId + ",'" + order.Content + "',1,GETDATE(),GETDATE(),1,1)");
                        conn.Execute(sql3.ToString(), null, transaction);
                    }

                    //添加成功后,将购物车表中的数据删除
                    StringBuilder sql4 = new StringBuilder("UPDATE dbo.CartDetails SET Sates=-1  where Id IN(" + order.Ids + ")");
                    conn.Execute(sql4.ToString(), null, transaction);


                    transaction.Commit();
                    return(1);
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    string msg = ex.Message;
                    return(0);

                    throw;
                }
            }
        }