in Hands-on lab/lab-files/src/src/PartsUnlimitedWebsite/Areas/Admin/Controllers/OrdersController.cs [27:61]
public async Task<IActionResult> Details(int? id)
{
if (id == null)
{
return RedirectToAction("Index", new { invalidOrderSearch = Request.Query["id"] });
}
var order = await _ordersQuery.FindOrderAsync(id.Value);
if (order == null)
{
return RedirectToAction("Index", new { invalidOrderSearch = id.ToString() });
}
var itemsCount = order.OrderDetails.Sum(x => x.Quantity);
var subTotal = order.OrderDetails.Sum(x => x.Quantity * x.Product.Price);
var shipping = itemsCount * (decimal)5.00;
var tax = (subTotal + shipping) * (decimal)0.05;
var total = subTotal + shipping + tax;
var costSummary = new OrderCostSummary
{
CartSubTotal = subTotal.ToString("C"),
CartShipping = shipping.ToString("C"),
CartTax = tax.ToString("C"),
CartTotal = total.ToString("C")
};
var viewModel = new OrderDetailsViewModel
{
OrderCostSummary = costSummary,
Order = order
};
return View(viewModel);
}