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()); }
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))); }
protected void Page_Load(object sender, EventArgs e) { var dataAdapter = new ShoppingCartDataAdapter( new PortalConfigurationDataAdapterDependencies(PortalName, Request.RequestContext), Context.Profile.UserName); EditableShoppingCart.Cart = dataAdapter.SelectCart(); }