Пример #1
0
 private void Apply(ProductAddedToCart evt)
 {
     if (!products.ContainsKey(evt.ProductId))
     {
         products.Add(evt.ProductId, evt.Quantity);
     }
     else
     {
         products[evt.ProductId] += evt.Quantity;
     }
 }
        public ActionResult Show(ProductAddedToCart page, ProductVariant productVariant, int quantity = 1)
        {
            if (productVariant == null || productVariant.Id == 0)
            {
                return(_productAddedToCartUIService.RedirectToCart());
            }

            ViewData["productvariant"] = productVariant;
            ViewData["quantity"]       = quantity;
            ViewData["cart"]           = _productAddedToCartUIService.Cart;
            return(View(page));
        }
Пример #3
0
        public async Task HandleAsync(ProductAddedToCart @event)
        {
            await ExecuteSaveAsync(@event.AggregateId, cart =>
            {
                var cartItems = cart.Items.ToList();
                var cartItem  = new ShoppingCartItemReadModel(@event.ProductId, @event.Price);

                cartItems.Add(cartItem);

                return(new ShoppingCartReadModel(cart, cartItems));
            });
        }
        public async Task Handle(ProductAddedToCart message, IMessageHandlerContext context)
        {
            Data.LastTouched = DateTime.Now;

            await RequestTimeout(context, Data.LastTouched.AddSeconds(30), new CartGettingStaleTimeout()
            {
                LastTouched = Data.LastTouched
            });

            await RequestTimeout(context, Data.LastTouched.AddSeconds(60), new CartWipeTimeout()
            {
                LastTouched = Data.LastTouched
            });
        }
Пример #5
0
        private void Apply(ProductAddedToCart evt)
        {
            var item = Enumerable.SingleOrDefault(_shoppingCartItems, sci => sci.ProductId == evt.ProductId);

            if (item == null)
            {
                _shoppingCartItems.Add(
                    new ShoppingCartItem(evt.ProductId, evt.Price, 1));
            }
            else
            {
                item.AddItems(1);
            }
        }
Пример #6
0
        private void Handle(ProductAddedToCart evt)
        {
            var cart    = db.GetCartById(evt.CartId);
            var product = cart.Items.FirstOrDefault(x => x.ProductId == evt.ProductId);

            if (product != null)
            {
                product.Price = evt.Price;
            }
            else
            {
                cart.Items.Add(new ShoppingCartItemReadModel
                {
                    Price     = evt.Price,
                    ProductId = evt.ProductId
                });
            }
            db.SaveCart(cart);
        }
        /// <summary>
        /// Method used to store user selected items in session
        /// </summary>
        /// <param name="selectedItem"></param>
        /// <returns></returns>
        public JsonResult ToggleCartSelection(ProductAddedToCart selectedItem)
        {
            var itemsInCart = _session.Get <CartProducts>(SessionKey.CART_ITEMS);

            if (itemsInCart == null)
            {
                itemsInCart = new CartProducts()
                {
                    CartItems = new List <ProductAddedToCart>()
                };
            }
            if (itemsInCart.CartItems.Any(x => x.ProductId == selectedItem.ProductId))
            {
                itemsInCart.CartItems.RemoveAll(x => x.ProductId == selectedItem.ProductId);
            }
            else
            {
                itemsInCart.CartItems.Add(selectedItem);
            }
            _session.Set <CartProducts>(SessionKey.CART_ITEMS, itemsInCart);
            return(Json(itemsInCart));
        }
Пример #8
0
 private void Apply(ProductAddedToCart evt)
 {
     products.Add(evt.ProductId, evt.Price);
 }
Пример #9
0
 private void OnProductAdded(EventArgs e)
 {
     ProductAddedToCart?.Invoke(this, e);
 }
Пример #10
0
        public PageModel Setup(MediaModel mediaModel)
        {
            var pageModel = new PageModel();

            var productSearch = new ProductSearch
            {
                Name               = "Categories",
                UrlSegment         = "categories",
                RevealInNavigation = true
            };
            var categoryContainer = new ProductContainer
            {
                Name               = "Products",
                UrlSegment         = "products",
                RevealInNavigation = false
            };

            _webpageAdminService.Add(productSearch);
            _webpageAdminService.PublishNow(productSearch);
            _webpageAdminService.Add(categoryContainer);
            _webpageAdminService.PublishNow(categoryContainer);
            pageModel.ProductSearch = productSearch;

            var now        = DateTime.UtcNow;
            var yourBasket = new Cart
            {
                Name               = "Your Basket",
                UrlSegment         = "basket",
                RevealInNavigation = false,
                PublishOn          = now
            };

            _webpageAdminService.Add(yourBasket);
            var enterOrderEmail = new EnterOrderEmail
            {
                Name               = "Enter Order Email",
                UrlSegment         = "enter-order-email",
                RevealInNavigation = false,
                Parent             = yourBasket,
                DisplayOrder       = 0,
                PublishOn          = now,
            };

            _webpageAdminService.Add(enterOrderEmail);
            var setPaymentDetails = new PaymentDetails
            {
                Name               = "Set Payment Details",
                UrlSegment         = "set-payment-details",
                RevealInNavigation = false,
                Parent             = yourBasket,
                DisplayOrder       = 1,
                PublishOn          = now,
            };

            _webpageAdminService.Add(setPaymentDetails);
            var setDeliveryDetails = new SetShippingDetails
            {
                Name               = "Set Shipping Details",
                UrlSegment         = "set-shipping-details",
                RevealInNavigation = false,
                Parent             = yourBasket,
                DisplayOrder       = 2,
                PublishOn          = now,
            };

            _webpageAdminService.Add(setDeliveryDetails);
            var orderPlaced = new OrderPlaced
            {
                Name               = "Order Placed",
                UrlSegment         = "order-placed",
                RevealInNavigation = false,
                Parent             = yourBasket,
                DisplayOrder       = 3,
                PublishOn          = now,
            };

            _webpageAdminService.Add(orderPlaced);

            // User Account
            var userAccount = new SitemapPlaceholder
            {
                Name               = "User Account",
                UrlSegment         = "user-account",
                RevealInNavigation = false,
                PublishOn          = now
            };

            _webpageAdminService.Add(userAccount);

            var userAccountInfo = new UserAccountInfo
            {
                Name               = "Account Details",
                UrlSegment         = "user-account-details",
                RevealInNavigation = false,
                PublishOn          = now,
                Parent             = userAccount
            };

            _webpageAdminService.Add(userAccountInfo);

            var userAccountPassword = new UserAccountChangePassword
            {
                Name               = "Change Password",
                UrlSegment         = "user-account-change-password",
                RevealInNavigation = false,
                PublishOn          = now,
                Parent             = userAccount
            };

            _webpageAdminService.Add(userAccountPassword);

            var userAccountAddresses = new UserAccountAddresses
            {
                Name               = "Account Addresses",
                UrlSegment         = "user-account-addresses",
                RevealInNavigation = false,
                PublishOn          = now,
                Parent             = userAccount
            };

            _webpageAdminService.Add(userAccountAddresses);

            var editAddress = new UserAccountEditAddress
            {
                Name               = "Edit Address",
                UrlSegment         = userAccountAddresses.UrlSegment + "/edit-address",
                RevealInNavigation = false,
                PublishOn          = now,
                Parent             = userAccountAddresses
            };

            _webpageAdminService.Add(editAddress);

            var userAccountOrders = new UserAccountOrders
            {
                Name               = "Orders",
                UrlSegment         = "user-account-orders",
                RevealInNavigation = false,
                PublishOn          = now,
                Parent             = userAccount
            };

            _webpageAdminService.Add(userAccountOrders);

            var userOrder = new UserOrder
            {
                Name               = "View Order",
                UrlSegment         = "user-account-orders/order",
                RevealInNavigation = false,
                PublishOn          = now,
                Parent             = userAccountOrders
            };

            _webpageAdminService.Add(userOrder);

            var userAccountReviews = new UserAccountReviews
            {
                Name               = "Reviews",
                UrlSegment         = "user-account-reviews",
                RevealInNavigation = false,
                PublishOn          = now,
                Parent             = userAccount
            };

            _webpageAdminService.Add(userAccountReviews);

            var userAccountRewards = new UserAccountRewardPoints
            {
                Name               = "Reward Points",
                UrlSegment         = "user-account-reward-points",
                RevealInNavigation = false,
                PublishOn          = now,
                Parent             = userAccount
            };

            _webpageAdminService.Add(userAccountRewards);

            // End User Account


            //Added to cart
            var addedToCart = new ProductAddedToCart
            {
                Name               = "Added to Basket",
                UrlSegment         = "add-to-basket",
                RevealInNavigation = false,
                PublishOn          = now
            };

            _webpageAdminService.Add(addedToCart);
            pageModel.ProductAddedToCart = addedToCart;

            var wishlist = new ShowWishlist
            {
                Name               = "Wishlist",
                UrlSegment         = "wishlist",
                RevealInNavigation = true,
                PublishOn          = now
            };

            _webpageAdminService.Add(wishlist);

            var newIn = new NewInProducts
            {
                Name               = "New In",
                UrlSegment         = "new-in",
                RevealInNavigation = true,
                PublishOn          = now
            };

            _webpageAdminService.Add(newIn);

            var about = new TextPage()
            {
                Name               = "About us",
                UrlSegment         = "about-us",
                RevealInNavigation = true,
                PublishOn          = now,
                BodyContent        = EcommerceInstallInfo.AboutUsText
            };

            _webpageAdminService.Add(about);

            //update core pages
            var homePage = _getByUrl.GetByUrl("home");

            if (homePage != null)
            {
                homePage.BodyContent = EcommerceInstallInfo.HomeCopy;
                var templates    = _pageTemplateAdminService.Search(new PageTemplateSearchQuery());
                var homeTemplate = templates.FirstOrDefault(x => x.Name == "Home Page");
                if (homeTemplate != null)
                {
                    homePage.PageTemplate = homeTemplate;
                }

                homePage.SubmitButtonText = "Sign up";
                _webpageAdminService.Update(homePage);
                pageModel.HomePage = homePage;
            }
            var page2 = _getByUrl.GetByUrl("page-2");

            if (page2 != null)//demopage in core not needed
            {
                _webpageAdminService.Delete(page2);
            }

            var contactus = _getByUrl.GetByUrl("contact-us");

            if (contactus != null)//demopage in core not needed
            {
                _webpageAdminService.Delete(contactus);
            }

            //Added to cart
            var contactUs = new ContactUs()
            {
                Name               = "Contact Us",
                UrlSegment         = "contact-us",
                RevealInNavigation = true,
                PublishOn          = now,
                Latitude           = 55.01021m,
                Longitude          = -1.44998m,
                Address            = EcommerceInstallInfo.Address,
                PinImage           = mediaModel.Logo.FileUrl,
                BodyContent        = "[form]",
                FormDesign         = EcommerceInstallInfo.ContactFormDesign
            };

            _webpageAdminService.Add(contactUs);
            GetFormProperties(contactUs);

            var brandListing = new BrandListing
            {
                Name               = "Brands",
                UrlSegment         = "brands",
                RevealInNavigation = true,
                PublishOn          = now,
                BodyContent        = ""
            };

            _webpageAdminService.Add(brandListing);

            return(pageModel);
        }
Пример #11
0
        public void AddProduct(Guid productId, int quantity)
        {
            var ev = new ProductAddedToCart(AggregateId, productId, quantity);

            AddEvent(ev);
        }
Пример #12
0
        public void Handle(ProductAddedToCart evt)
        {
            var product = productPrices[evt.ProductId];

            Model.ProductAddedToCart(evt.CartId, evt.ProductId, product.Price, product.Description, evt.Quantity, evt.Timestamp);
        }
Пример #13
0
 /// <summary>
 /// IT is called inside carts (e.g. flyout cart and its attributes)
 /// </summary>
 /// <param name="sender">Component which has called the event</param>
 public void OnProductAddedToCart(IComponent sender, ProductAddedToCartEventArgs args)
 {
     ProductAddedToCart?.Invoke(sender, args);
 }
Пример #14
0
 protected void OnProductAddedToCart(ProductAddedToCart productAddedToCart)
 {
     _products.Add(productAddedToCart.ProductId);
 }