public async Task <IActionResult> GetOrderHistory(int id) { var orderDetail = new DetailAndOrderHeaderViewModel { OrderHeader = await _dbContext.OrderHeaders.Include(o => o.ApplicationUser) .FirstOrDefaultAsync(o => o.Id == id), OrderDetails = await _dbContext.OrderDetails.Include(o => o.MenuItem).Where(o => o.OrderId == id).ToListAsync() }; return(PartialView("_OrderDetailPartialView", orderDetail)); }
public async Task <IActionResult> Confirm(int id) { var claimIdentity = (ClaimsIdentity)User.Identity; var userId = claimIdentity.FindFirst(ClaimTypes.NameIdentifier).Value; var viewModel = new DetailAndOrderHeaderViewModel { OrderHeader = await _dbContext.OrderHeaders.Include(o => o.ApplicationUser) .FirstOrDefaultAsync(o => o.Id == id && o.UserId == userId), OrderDetails = await _dbContext.OrderDetails.Include(o => o.MenuItem) .Where(o => o.OrderId == id).ToListAsync() }; await _emailSender.SendEmailAsync(viewModel.OrderHeader.ApplicationUser.Email, "Confirm Order", $"Your order #{viewModel.OrderHeader.Id} has been confirm"); return(View(viewModel)); }
public async Task <IActionResult> OrderHistory(OrderHistoryQueryString queryString) { var claimIdentity = (ClaimsIdentity)User.Identity; var userId = claimIdentity.FindFirst(ClaimTypes.NameIdentifier).Value; var ordersHistory = new List <DetailAndOrderHeaderViewModel>(); var orders = await _dbContext.OrderHeaders.Include(o => o.ApplicationUser) .Where(o => o.UserId == userId).ApplySort(queryString.OrderBy).ToListAsync(); foreach (var order in orders) { var orderHistory = new DetailAndOrderHeaderViewModel { OrderHeader = order, OrderDetails = await _dbContext.OrderDetails.Where(o => o.OrderId == order.Id).ToListAsync() }; ordersHistory.Add(orderHistory); } return(View(PagedList <DetailAndOrderHeaderViewModel> .Paging(ordersHistory, queryString.PageNum, queryString.PageSize))); }