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); }
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)); } }