Пример #1
0
        public ActionResult AddProductToCart(Guid productid, int quantity)
        {
            var          visitorID = HttpContext.Profile.UserName;
            ShoppingCart cart;
            var          portal             = PortalCrmConfigurationManager.CreatePortalContext();
            var          context            = portal.ServiceContext;
            var          product            = context.CreateQuery("product").FirstOrDefault(p => p.GetAttributeValue <Guid>("productid") == productid);
            var          productDataAdapter = new ProductDataAdapter(product, new Adxstudio.Xrm.Products.PortalContextDataAdapterDependencies(portal, null, Request.RequestContext));

            // Check for an existing cart

            var shoppingCartDataAdapter = new ShoppingCartDataAdapter(new PortalConfigurationDataAdapterDependencies(null, Request.RequestContext), visitorID);

            var existingShoppingCart = shoppingCartDataAdapter.SelectCart();

            // Create cart if it does not already exist.

            if (existingShoppingCart == null || existingShoppingCart.Entity == null)
            {
                cart = shoppingCartDataAdapter.CreateCart() as ShoppingCart;
            }
            else
            {
                cart = existingShoppingCart as ShoppingCart;
            }

            // Add product to cart and redirect to shopping cart page

            if (cart != null)
            {
                cart.AddProductToCart(productid, productDataAdapter.Select().PricingInfo.PriceListName, quantity);
            }

            return(RedirectToShoppingCart());
        }
Пример #2
0
        public ActionResult Status()
        {
            var dataAdapterDependencies = new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext);

            // Check for existence of shopping cart schema, and return empty cart if not found.
            try
            {
                using (var serviceContext = dataAdapterDependencies.GetServiceContext())
                {
                    serviceContext.Execute(new RetrieveEntityRequest
                    {
                        LogicalName   = "adx_shoppingcart",
                        EntityFilters = EntityFilters.Entity
                    });
                }
            }
            catch (FaultException <OrganizationServiceFault> )
            {
                return(ShoppingCart(0));
            }

            var dataAdapter = new ShoppingCartDataAdapter(dataAdapterDependencies, HttpContext.Profile.UserName);

            var cart = dataAdapter.SelectCart();

            if (cart == null)
            {
                return(ShoppingCart(0));
            }

            var cartItems = cart.GetCartItems().ToArray();

            return(ShoppingCart(cartItems.Sum(item => item.Quantity)));
        }
Пример #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var dataAdapter = new ShoppingCartDataAdapter(
                new PortalConfigurationDataAdapterDependencies(PortalName, Request.RequestContext),
                Context.Profile.UserName);

            EditableShoppingCart.Cart = dataAdapter.SelectCart();
        }