public void OrderSystem_CreateRandomOrder()
        {
            Cart cart = OrderContext.Current.GetCart(Cart.DefaultName, Guid.NewGuid());

            String customerFullName  = _customerNames[_random.Next(0, _customerNames.Length - 1)];
            int    space             = customerFullName.IndexOf(' ');
            String customerFirstName = customerFullName.Substring(0, space);
            String customerLastName  = customerFullName.Substring(space + 1);

            //String customerHomeId = customerFullName + "\'s " + "Home";

            cart.CustomerName = customerFullName;

            cart.BillingCurrency = CommonSettingsManager.GetDefaultCurrency();
            cart.OrderAddresses.Add(OrderHelper.CreateAddress());

            cart.OrderAddresses[0].Name      = "Home";
            cart.OrderAddresses[0].FirstName = customerFirstName;
            cart.OrderAddresses[0].LastName  = customerLastName;

            OrderForm orderForm = new OrderForm();

            orderForm.Name = "default";

            // Randomly pick a shipping method.
            Mediachase.Commerce.Orders.Dto.ShippingMethodDto smd = Mediachase.Commerce.Orders.Managers.ShippingManager.GetShippingMethods("en-us");
            int    shippingMethod     = _random.Next(smd.ShippingMethod.Count);
            Guid   shippingMethodId   = smd.ShippingMethod[shippingMethod].ShippingMethodId;
            String shippingMethodName = smd.ShippingMethod[shippingMethod].Name;

            // Add line items
            // Random number of line items in an order
            int itemNum = _random.Next(3, 10);

            for (int i = 0; i < itemNum; i++)
            {
                orderForm.LineItems.Add(createLineItem(_random, shippingMethodId, shippingMethodName));
            }

            // Add payments
            // Pay by phone
            orderForm.Payments.Add(OrderHelper.CreateInvoicePayment());
            // Pay by credit card (sends out emails)
            //orderForm.Payments.Add(OrderHelper.CreateCreditCardPayment());

            // Add discounts
            orderForm.Discounts.Add(OrderHelper.CreateOrderFormDiscount());

            cart.OrderForms.Add(orderForm);
            cart.OrderForms[0].BillingAddressId = cart.OrderAddresses[0].Name;


            cart.RunWorkflow("CartValidate");
            cart.RunWorkflow("CartPrepare");
            cart.OrderForms[0].Payments[0].Amount = cart.Total;
            cart.RunWorkflow("CartCheckout");

            // Last step
            PurchaseOrder po = cart.SaveAsPurchaseOrder();

            // Randomize created date and time
            po.OrderForms[0].Created = randomDate();
            // Randomize order status
            po.Status = randomStatus();

            po.AcceptChanges();
        }