public ActionResult Index()
        {
            var cart = ShoppingCart.GetCart(this.HttpContext);
            // Set up our ViewModel
            var viewModel = new ShoppingCartViewModel
            {
                CartItems = cart.GetCartItems(),
                CartTotal = cart.GetTotal()
            };

            //PUROLATOR ET POSTE CANADA
            if (User.Identity.IsAuthenticated)
            {
                AspNetUser aUser = storeDB.AspNetUsers.FirstOrNull(c => c.Email == User.Identity.Name);

                viewModel.Shipping = aUser == null ? 0 : new EstimatingPuro().CallGetQuickEstimate(aUser);
                decimal Pcanada = new GetShipmentPrice().GetPrice(aUser.PostalCode);
                // L'utilisateur ne choisi pas lequel il prend : il prend le moins chère.
                if (viewModel.Shipping > Pcanada && Pcanada != 0)
                {
                    viewModel.Shipping = Pcanada;
                }
            }
            else
            {
                viewModel.Shipping = 0.00M;
            }
            // Return the view
            return(View(viewModel));
        }
Example #2
0
        /// <summary>
        /// Permet de transmettre une requête d'achat à Paypal.
        /// Une fois accepté, il sera redigiré vers la page de
        /// confirmation d'achat
        /// </summary>
        /// <returns></returns>
        public ActionResult Checkout()
        {
            PaypalNVPAPICaller test   = new PaypalNVPAPICaller();
            string             retMsg = "";
            string             token  = "";
            var     cart          = ShoppingCart.GetCart(this.HttpContext);
            decimal dMontantTotal = cart.GetTotal();
            decimal dshipping     = 0;

            EstimatingPuro puroClient = new EstimatingPuro();
            AspNetUser     aUser      = storeDB.AspNetUsers.First(c => c.Email == User.Identity.Name);

            dshipping = puroClient.CallGetQuickEstimate(aUser);
            decimal Pcanada = new GetShipmentPrice().GetPrice(aUser.PostalCode);

            if (dshipping > Pcanada && Pcanada != 0)
            {
                dshipping = Pcanada;
            }

            if (dMontantTotal > 0)
            {
                decimal twoDec = Math.Round(dMontantTotal + dshipping, 2);
                string  amt    = twoDec.ToString().Replace(",", ".");
                Session["payment_amt"] = amt;
                bool ret = test.ShortcutExpressCheckout(amt, ref token, ref retMsg, cart.GetCartItems(), dshipping);
                if (ret)
                {
                    HttpContext.Session["token"] = token;
                    return(Redirect(retMsg));
                }
                else
                {
                    return(Redirect("APIError?" + retMsg));
                }
            }
            else
            {
                return(Redirect("APIError?ErrorCode=AmtMissing"));
            }
        }