in src/PartsUnlimitedWebsite/Controllers/CheckoutController.cs [53:88]
public async Task<IActionResult> AddressAndPayment(Order order)
{
var formCollection = await HttpContext.Request.ReadFormAsync();
try
{
if (string.Equals(formCollection["PromoCode"].FirstOrDefault(), PromoCode,
StringComparison.OrdinalIgnoreCase) == false)
{
return View(order);
}
else
{
order.Username = HttpContext.User.Identity.Name;
order.OrderDate = DateTime.Now;
//Add the Order
_db.Orders.Add(order);
//Process the order
var cart = ShoppingCart.GetCart(_db, HttpContext);
cart.CreateOrder(order);
// Save all changes
await _db.SaveChangesAsync(HttpContext.RequestAborted);
return RedirectToAction("Complete",
new { id = order.OrderId });
}
}
catch
{
//Invalid - redisplay with errors
return View(order);
}
}