public async Task <ActionResult> Cart() { var user = await GetUserAsync(); var viewModel = new CompleteOrderChoosePaymentTypeViewModel(); var order = await _context.Order .Include(o => o.OrderProducts) .ThenInclude(op => op.Product) .FirstOrDefaultAsync(o => o.UserId == user.Id && o.PaymentTypeId == null); var paymentTypeOptions = await _context.PaymentType .Where(pt => pt.UserId == user.Id) .Select(p => new SelectListItem() { Text = p.Description, Value = p.PaymentTypeId.ToString() }).ToListAsync(); viewModel.Order = order; viewModel.ListOfPaymentTypes = paymentTypeOptions; return(View(viewModel)); }
public async Task <ActionResult> CompleteOrder(CompleteOrderChoosePaymentTypeViewModel viewModel) { var user = await GetUserAsync(); var order = await _context.Order.FirstOrDefaultAsync(o => o.OrderId == viewModel.Order.OrderId); order.PaymentTypeId = viewModel.Order.PaymentTypeId; order.DateCompleted = DateTime.Now; _context.Order.Update(order); var newOrder = new Order() { UserId = user.Id }; _context.Order.Add(newOrder); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); }