Example #1
0
        public void VerifyOrder(Order order)
        {
            //set the order as submitted - this will "clear" the basket
            order.Status = OrderStatus.Submitted;
            _orderService.SaveOrder(order);


            //send thank you email
            _mailerService.SendOrderEmail(order, MailerType.CustomerOrderReceived);


            //validate shipping address
            _addressValidation.VerifyAddress(order.ShippingAddress);


            //authorize payment
            _paymentService.Authorize(order);


            //set order status to verified
            order.Status = OrderStatus.Verified;

            //save the order
            _orderService.SaveOrder(order);

            //adjust inventory
            foreach (OrderItem item in order.Items)
            {
                _inventoryService.IncrementInventory(item.Product.ID, -item.Quantity, "Adjustment for order " + order.ID);
            }

            //email admin RE new order
            _mailerService.SendOrderEmail(order, MailerType.AdminOrderReceived);
        }
Example #2
0
        ActionResult ValidateShippingAndRedirect(Order order)
        {
            bool isValid = false;

            try {
                _addressValidator.VerifyAddress(order.ShippingAddress);
                isValid = true;
            } catch {
                this.SetErrorMessage("Please check the address you've entered; it appears invalid");
            }

            if (isValid)
            {
                //put it in TempData
                PutTempOrder(order);
                //send them off...
                return(RedirectToAction("CreditCard"));
            }
            else
            {
                OrderData data = new OrderData();
                data.CurrentOrder = order;
                return(View("Shipping", order));
            }
        }