public ActionResult CheckOut(CheckOutViewModel model)
        {
            if (ModelState.IsValid)
            {
                var order            = ProcessCheckOut(model, cartManager.MyCart);
                var orderNo          = orderProvider.CreateOrderFromCart(order);
                var encryptedOrderNo = RijndaelHelper.Encrypt(orderNo,
                                                              ConfigurationInstance[ConfigurationKeys.CryptographyKey]);
                string returnUrl = String.Format("{0}?o={1}", Url.Action("CheckOutSuccess"), encryptedOrderNo);

                return(Json(new
                {
                    Error = false,
                    OrderNo = orderNo,
                    ReturnUrl = returnUrl
                }));
            }

            var allErrors = ModelState.Values.SelectMany(v => v.Errors).Select(o => o.ErrorMessage);

            return(Json(new
            {
                Error = true,
                Errors = allErrors
            }));
        }