public List<OrderViewModel> GetUserAllOrder(int userId, List<int> orderStatus)
        {
            var orderList = new List<OrderViewModel>();
            using (var cmd = DataCommandManager.GetDataCommand("GetUserAllOrder"))
            {
                cmd.CommandText = string.Format(cmd.CommandText, string.Join(",", orderStatus)); 
                cmd.SetParameterValue("@UserId", userId);
                using (var dr=cmd.ExecuteDataReader())
                {
                    while (dr.Read())
                    {
                        var orderViewModel = new OrderViewModel();

                        orderViewModel.OrderId = !Convert.IsDBNull(dr["OrderId"]) ? Convert.ToInt64(dr["OrderId"]) : 0;
                        orderViewModel.UserId = !Convert.IsDBNull(dr["UserId"]) ? Convert.ToInt32(dr["UserId"]) : 0;
                        orderViewModel.CreateTime = !Convert.IsDBNull(dr["CreateTime"]) ? Convert.ToDateTime(dr["CreateTime"]) : DateTime.MinValue;
                        orderViewModel.ProductId = !Convert.IsDBNull(dr["ProductId"]) ? Convert.ToInt32(dr["ProductId"]) : 0;
                        orderViewModel.ProductCount = !Convert.IsDBNull(dr["ProductCount"]) ? Convert.ToInt32(dr["ProductCount"]) : 0;
                        orderViewModel.Price = !Convert.IsDBNull(dr["Price"]) ? Convert.ToDecimal(dr["Price"]) : 0;
                        orderViewModel.Status = !Convert.IsDBNull(dr["Status"]) ? Convert.ToInt32(dr["Status"]) : 0;
                        orderViewModel.PayType = !Convert.IsDBNull(dr["PayType"]) ? Convert.ToInt32(dr["PayType"]) : 0;
                        orderViewModel.ProductName = !Convert.IsDBNull(dr["ProductName"]) ? dr["ProductName"].ToString() : string.Empty;
                        //orderViewModel.TotalMoney = !Convert.IsDBNull(dr["TotalMoney"]) ? Convert.ToDecimal(dr["TotalMoney"]) : 0;

                        orderViewModel.Earning = !Convert.IsDBNull(dr["Earning"]) ? Convert.ToDecimal(dr["Earning"]) : 0;
                        orderViewModel.EarningDay = !Convert.IsDBNull(dr["EarningDay"]) ? Convert.ToInt32(dr["EarningDay"]) : 0;
                        orderViewModel.EarningRate = !Convert.IsDBNull(dr["EarningRate"]) ? Convert.ToDecimal(dr["EarningRate"]) : 0;
                        orderViewModel.YearEarningRate = !Convert.IsDBNull(dr["YearEarningRate"]) ? Convert.ToDecimal(dr["YearEarningRate"]) : 0;
                        orderViewModel.StartTime = !Convert.IsDBNull(dr["StartTime"]) ? Convert.ToDateTime(dr["StartTime"]) : DateTime.MinValue;
                        orderViewModel.EndTime = !Convert.IsDBNull(dr["EndTime"]) ? Convert.ToDateTime(dr["EndTime"]) : DateTime.MinValue;

                        
                        if (orderViewModel.OrderId > 0)
                        {
                            orderList.Add(orderViewModel);
                        }

                    }
                }
            }
            return orderList;
        }
 private OrderViewModel OrderModelToOrderViewModel(OrderModel orderModel,ProductModel productModel)
 {
     var orderViewModel = new OrderViewModel();
     if (orderModel != null)
     {
         orderViewModel.OrderId = orderModel.OrderId;
         orderViewModel.UserId = orderModel.UserId;
         orderViewModel.CreateTime = orderModel.CreateTime;
         orderViewModel.ProductId = orderModel.ProductId;
         orderViewModel.ProductCount = orderModel.ProductCount;
         orderViewModel.Price = orderModel.Price;
         orderViewModel.Status = orderModel.Status;
         orderViewModel.PayType = orderModel.PayType;
         orderViewModel.TotalMoney = orderModel.Price*orderModel.ProductCount;
     }
     if (productModel != null)
     {
         orderViewModel.ProductName = productModel.Name;
     }
     
     return orderViewModel;
 }
        public OrderViewModel GetOrderViewModel(long orderId, int userId)
        {
            var orderModel = new OrderViewModel();
            using (var cmd = DataCommandManager.GetDataCommand("GetOrderViewModel"))
            {
                cmd.SetParameterValue("@UserId", userId);
                cmd.SetParameterValue("@OrderId", orderId);
                using (var dr = cmd.ExecuteDataReader())
                {
                    while (dr.Read())
                    {
                        orderModel.OrderId = !Convert.IsDBNull("OrderId") ? long.Parse(dr["OrderId"].ToString()) : 0;
                        orderModel.UserId = !Convert.IsDBNull("UserId") ? int.Parse(dr["UserId"].ToString()) : 0;
                        orderModel.ProductId = !Convert.IsDBNull("ProductId") ? int.Parse(dr["ProductId"].ToString()) : 0;
                        orderModel.ProductCount = !Convert.IsDBNull("ProductCount") ? int.Parse(dr["ProductCount"].ToString()) : 0;
                        orderModel.Price = !Convert.IsDBNull("Price") ? decimal.Parse(dr["Price"].ToString()) : 0;
                        orderModel.Status = !Convert.IsDBNull("Status") ? int.Parse(dr["Status"].ToString()) : 0;
                        orderModel.PayType = !Convert.IsDBNull("PayType") ? int.Parse(dr["PayType"].ToString()) : 0;
                        orderModel.ProductName = !Convert.IsDBNull(dr["ProductName"]) ? dr["ProductName"].ToString() : string.Empty;
                        orderModel.TotalMoney = !Convert.IsDBNull(dr["TotalMoney"]) ? Convert.ToDecimal(dr["TotalMoney"]) : 0;
                        orderModel.CreateTime = !Convert.IsDBNull("CreateTime") ? DateTime.Parse(dr["CreateTime"].ToString()) : DateTime.MinValue;
                    }
                }
            }

            return orderModel;
        }
        public PagedList<OrderViewModel> GetOrderList(int userId, int pageIndex, int pageSize)
        {
            var orderList = new List<OrderViewModel>();
            var totalOrderCount = 0;
            using (var cmd = DataCommandManager.GetDataCommand("GetOrderList"))
            {
                cmd.SetParameterValue("@UserId", userId);
                cmd.SetParameterValue("@PageIndex", pageIndex);
                cmd.SetParameterValue("@PageSize", pageSize);
                using (var dr = cmd.ExecuteDataReader())
                {
                    while (dr.Read())
                    {
                        var orderViewModel = new OrderViewModel();
                        if (totalOrderCount == 0)
                        {
                            totalOrderCount = !Convert.IsDBNull(dr["TotalOrderCount"])
                                ? int.Parse(dr["TotalOrderCount"].ToString())
                                : 0;
                        }
                        orderViewModel.OrderId = !Convert.IsDBNull(dr["OrderId"]) ? Convert.ToInt64(dr["OrderId"]) : 0;
                        orderViewModel.UserId = !Convert.IsDBNull(dr["UserId"]) ? Convert.ToInt32(dr["UserId"]) : 0;
                        orderViewModel.CreateTime = !Convert.IsDBNull(dr["CreateTime"]) ? Convert.ToDateTime(dr["CreateTime"]) : DateTime.MinValue;
                        orderViewModel.ProductId = !Convert.IsDBNull(dr["ProductId"]) ? Convert.ToInt32(dr["ProductId"]) : 0;
                        orderViewModel.ProductCount = !Convert.IsDBNull(dr["ProductCount"]) ? Convert.ToInt32(dr["ProductCount"]) : 0;
                        orderViewModel.Price = !Convert.IsDBNull(dr["Price"]) ? Convert.ToDecimal(dr["Price"]) : 0;
                        orderViewModel.Status = !Convert.IsDBNull(dr["Status"]) ? Convert.ToInt32(dr["Status"]) : 0;
                        orderViewModel.PayType = !Convert.IsDBNull(dr["PayType"]) ? Convert.ToInt32(dr["PayType"]) : 0;
                        orderViewModel.ProductName = !Convert.IsDBNull(dr["ProductName"]) ? dr["ProductName"].ToString() : string.Empty;
                        orderViewModel.ProductImgUrl = !Convert.IsDBNull(dr["ImgUrl"])? dr["ImgUrl"].ToString(): string.Empty;
                        orderViewModel.TotalMoney = !Convert.IsDBNull(dr["TotalMoney"]) ? Convert.ToDecimal(dr["TotalMoney"]) : 0;

                        orderViewModel.EarningDay = !Convert.IsDBNull(dr["EarningDay"]) ? Convert.ToInt32(dr["EarningDay"]) : 0;
                        orderViewModel.StartTime = !Convert.IsDBNull(dr["StartTime"]) ? Convert.ToDateTime(dr["StartTime"]) : DateTime.MaxValue;
                        orderViewModel.EndTime = !Convert.IsDBNull(dr["EndTime"]) ? Convert.ToDateTime(dr["EndTime"]) : DateTime.MaxValue;
                        if (orderViewModel.OrderId > 0)
                        {
                            orderList.Add(orderViewModel);
                        }
                    }
                }
            }
            var result = new PagedList<OrderViewModel>(orderList, pageIndex, pageSize, totalOrderCount);
            return result;
        }