public PaymentResult Checkout(CheckoutViewModel model)
        {
            var items = GetCartItems();

            var order = new Order()
            {
                FirstName = model.FirstName,
                LastName = model.LastName,

                Email = model.Email,
                OrderDate = DateTime.Now,
                UserId = HttpContext.Current.User.Identity.GetUserId()

            };

            foreach (var item in items)
            {

                var detail = new OrderDetail()
                {
                    ProductId = item.ProductId,
                    UnitPrice = item.Product.Price,
                    Quantity = item.Count
                };

                order.Total += (item.Product.Price * item.Count);

                order.OrderDetails.Add(detail);
            }

            model.Total = order.Total;

            var request = new TransactionRequest()
               {
               PrivateKey = "c4660e3571ca74392d20cc91f4568748",
               PublicKey = "y5yfh9kcnvt8qf4x",
               Amount = model.Total,

               TransactionCreditCardRequest = new CreditCardDetails()
               {
                   Number = model.CardNumber,
                   CVV = model.Cvv,
                   ExpirationMonth = model.Month,
                   ExpirationYear = model.Year
               }
               };
            var result = Utility.Request(request);
            if (result.Message == "Pass")
            {
                order.TransactionId = result.TransactionId;
                _db.Orders.Add(order);
                _db.SaveChanges();
            }

            return result;
        }
        public ActionResult Checkout(CheckoutViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }

            var cart = new ShoppingCartService(HttpContext);

            var result = cart.Checkout(model);

            if (result.Message=="Pass")
            {
                TempData["transactionId"] = result.TransactionId;
                cart.ClearCart(HttpContext);
                return RedirectToAction("Complete");
            }

            ModelState.AddModelError(string.Empty, result.Message);

            return View(model);
        }