public async System.Threading.Tasks.Task <ActionResult> AddressAndPayment(FormCollection values) { var order = new Order(); TryUpdateModel(order); try { order.Username = User.Identity.Name; order.OrderDate = DateTime.Now; order.OrderState = "Pending"; order.UserId = storeDB.Users.Where(x => x.Username == System.Web.HttpContext.Current.User.Identity.Name).FirstOrDefault().UserId; order.Email = storeDB.Users.Where(x => x.Username == System.Web.HttpContext.Current.User.Identity.Name).FirstOrDefault().Email; storeDB.Orders.Add(order); storeDB.SaveChanges(); var cart = ShoppingCart.GetCart(this.HttpContext); cart.CreateOrder(order); EmailHandler email = new EmailHandler(); await email.OrderEmail(order); return(RedirectToAction("Complete", "Checkout", new { id = order.OrderId })); } catch (Exception ex) { return(View(order)); } }