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)));
        }