public ActionResult FlyoutWishlist() { Customer customer = _workContext.CurrentCustomer; var cart = customer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id, true); var model = new WishlistModel(); PrepareWishlistModel(model, cart, true); // TODO: MiniWishlistModel analog zu MiniCart implementieren model.Items = model.Items.Take(_shoppingCartSettings.MiniShoppingCartProductNumber).ToList(); // reformat AttributeInfo: this is bad! Put this in PrepareMiniWishlistModel later. model.Items.Each(x => { var sci = cart.Where(c => c.Item.Id == x.Id).FirstOrDefault(); if (sci != null) { x.AttributeInfo = _productAttributeFormatter.FormatAttributes( sci.Item.Product, sci.Item.AttributesXml, null, htmlEncode: false, serapator: ", ", renderPrices: false, renderGiftCardAttributes: false, allowHyperlinks: false); } }); model.IgnoredProductsCount = Math.Max(0, cart.Count - _shoppingCartSettings.MiniShoppingCartProductNumber); model.ThumbSize = _mediaSettings.MiniCartThumbPictureSize; return PartialView(model); }
protected void PrepareWishlistModel(WishlistModel model, IList<OrganizedShoppingCartItem> cart, bool isEditable = true) { if (cart == null) throw new ArgumentNullException("cart"); if (model == null) throw new ArgumentNullException("model"); model.EmailWishlistEnabled = _shoppingCartSettings.EmailWishlistEnabled; model.IsEditable = isEditable; model.DisplayAddToCart = _permissionService.Authorize(StandardPermissionProvider.EnableShoppingCart); if (cart.Count == 0) return; #region Simple properties var customer = cart.FirstOrDefault().Item.Customer; model.CustomerGuid = customer.CustomerGuid; model.CustomerFullname = customer.GetFullName(); model.ShowProductImages = _shoppingCartSettings.ShowProductImagesOnShoppingCart; model.ShowProductBundleImages = _shoppingCartSettings.ShowProductBundleImagesOnShoppingCart; model.ShowItemsFromWishlistToCartButton = _shoppingCartSettings.ShowItemsFromWishlistToCartButton; model.ShowSku = _catalogSettings.ShowProductSku; model.DisplayShortDesc = _shoppingCartSettings.ShowShortDesc; model.BundleThumbSize = _mediaSettings.CartThumbBundleItemPictureSize; //cart warnings var cartWarnings = _shoppingCartService.GetShoppingCartWarnings(cart, "", false); foreach (var warning in cartWarnings) model.Warnings.Add(warning); #endregion #region Cart items foreach (var sci in cart) { var wishlistCartItemModel = PrepareWishlistCartItemModel(sci); model.Items.Add(wishlistCartItemModel); } #endregion }
public ActionResult AddOneItemtoCartFromWishlist(Guid? customerGuid, FormCollection form) { if (!_permissionService.Authorize(StandardPermissionProvider.EnableShoppingCart)) return RedirectToRoute("HomePage"); if (!_permissionService.Authorize(StandardPermissionProvider.EnableWishlist)) return RedirectToRoute("HomePage"); //get wishlist cart item identifier int sciId = 0; foreach (var formValue in form.AllKeys) { if (formValue.StartsWith("addtocart-", StringComparison.InvariantCultureIgnoreCase)) sciId = Convert.ToInt32(formValue.Substring("addtocart-".Length)); } //get wishlist cart item var pageCustomer = customerGuid.HasValue ? _customerService.GetCustomerByGuid(customerGuid.Value) : _workContext.CurrentCustomer; if (pageCustomer == null) return RedirectToRoute("HomePage"); var pageCart = pageCustomer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id); var sci = pageCart.FirstOrDefault(x => x.Item.Id == sciId); if (sci == null) { return RedirectToRoute("Wishlist"); } var warnings = _shoppingCartService.Copy(sci, _workContext.CurrentCustomer, ShoppingCartType.ShoppingCart, _storeContext.CurrentStore.Id, true); if (_shoppingCartSettings.MoveItemsFromWishlistToCart && //settings enabled !customerGuid.HasValue && //own wishlist warnings.Count == 0) //no warnings ( already in the cart) { //let's remove the item from wishlist _shoppingCartService.DeleteShoppingCartItem(sci.Item); } if (warnings.Count == 0) { //redirect to the shopping cart page return RedirectToRoute("ShoppingCart"); } else { //no items added. redisplay the wishlist page var cart = pageCustomer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id); var model = new WishlistModel(); PrepareWishlistModel(model, cart, !customerGuid.HasValue); return View(model); } }
public ActionResult AddItemstoCartFromWishlist(Guid? customerGuid, FormCollection form) { if (!_permissionService.Authorize(StandardPermissionProvider.EnableShoppingCart)) return RedirectToRoute("HomePage"); if (!_permissionService.Authorize(StandardPermissionProvider.EnableWishlist)) return RedirectToRoute("HomePage"); var pageCustomer = customerGuid.HasValue ? _customerService.GetCustomerByGuid(customerGuid.Value) : _workContext.CurrentCustomer; if (pageCustomer == null) return RedirectToRoute("HomePage"); var pageCart = pageCustomer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id); var allWarnings = new List<string>(); var numberOfAddedItems = 0; var allIdsToAdd = form["addtocart"] != null ? form["addtocart"].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x)).ToList() : new List<int>(); foreach (var sci in pageCart) { if (allIdsToAdd.Contains(sci.Item.Id)) { var warnings = _shoppingCartService.Copy(sci, _workContext.CurrentCustomer, ShoppingCartType.ShoppingCart, _storeContext.CurrentStore.Id, true); if (warnings.Count == 0) numberOfAddedItems++; if (_shoppingCartSettings.MoveItemsFromWishlistToCart && //settings enabled !customerGuid.HasValue && //own wishlist warnings.Count == 0) //no warnings (already in the cart) { //let's remove the item from wishlist _shoppingCartService.DeleteShoppingCartItem(sci.Item); } allWarnings.AddRange(warnings); } } if (numberOfAddedItems > 0) { //redirect to the shopping cart page return RedirectToRoute("ShoppingCart"); } else { //no items added. redisplay the wishlist page var cart = pageCustomer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id); var model = new WishlistModel(); PrepareWishlistModel(model, cart, !customerGuid.HasValue); this.NotifyInfo(_localizationService.GetResource("Products.SelectProducts"), true); return View(model); } }
public ActionResult Wishlist(Guid? customerGuid) { if (!_permissionService.Authorize(StandardPermissionProvider.EnableWishlist)) return RedirectToRoute("HomePage"); var customer = customerGuid.HasValue ? _customerService.GetCustomerByGuid(customerGuid.Value) : _workContext.CurrentCustomer; if (customer == null) return RedirectToRoute("HomePage"); var cart = customer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id); var model = new WishlistModel(); PrepareWishlistModel(model, cart, !customerGuid.HasValue); return View(model); }
public ActionResult UpdateWishlistItem(FormCollection form) { if (!_permissionService.Authorize(StandardPermissionProvider.EnableWishlist)) return RedirectToRoute("HomePage"); //get wishlist cart item identifier int sciId = 0; foreach (var formValue in form.AllKeys) { if (formValue.StartsWith("updatecartitem-", StringComparison.InvariantCultureIgnoreCase)) sciId = Convert.ToInt32(formValue.Substring("updatecartitem-".Length)); } //get shopping cart item var cart = _workContext.CurrentCustomer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id); var sci = cart.FirstOrDefault(x => x.Item.Id == sciId); if (sci == null) { return RedirectToRoute("Wishlist"); } //update the wishlist cart item var warnings = new List<string>(); foreach (string formKey in form.AllKeys) { if (formKey.Equals(string.Format("itemquantity{0}", sci.Item.Id), StringComparison.InvariantCultureIgnoreCase)) { int newQuantity = sci.Item.Quantity; if (int.TryParse(form[formKey], out newQuantity)) { warnings.AddRange(_shoppingCartService.UpdateShoppingCartItem(_workContext.CurrentCustomer, sci.Item.Id, newQuantity, true)); } break; } } //updated wishlist cart = _workContext.CurrentCustomer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id); var model = new WishlistModel(); PrepareWishlistModel(model, cart); //update current warnings //find model var sciModel = model.Items.FirstOrDefault(x => x.Id == sciId); if (sciModel != null) { foreach (var w in warnings) { if (!sciModel.Warnings.Contains(w)) sciModel.Warnings.Add(w); } } return View(model); }
public ActionResult UpdateWishlistAll(FormCollection form) { if (!_permissionService.Authorize(StandardPermissionProvider.EnableWishlist)) return RedirectToRoute("HomePage"); var cart = _workContext.CurrentCustomer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id); var allIdsToRemove = form["removefromcart"] != null ? form["removefromcart"].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x)).ToList() : new List<int>(); //current warnings <cart item identifier, warnings> var innerWarnings = new Dictionary<int, IList<string>>(); foreach (var sci in cart) { bool remove = allIdsToRemove.Contains(sci.Item.Id); if (remove) { _shoppingCartService.DeleteShoppingCartItem(sci.Item); } else { foreach (string formKey in form.AllKeys) { if (formKey.Equals(string.Format("itemquantity{0}", sci.Item.Id), StringComparison.InvariantCultureIgnoreCase)) { int newQuantity = sci.Item.Quantity; if (int.TryParse(form[formKey], out newQuantity)) { var currSciWarnings = _shoppingCartService.UpdateShoppingCartItem(_workContext.CurrentCustomer, sci.Item.Id, newQuantity, true); innerWarnings.Add(sci.Item.Id, currSciWarnings); } break; } } } } //updated wishlist cart = _workContext.CurrentCustomer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id); var model = new WishlistModel(); PrepareWishlistModel(model, cart); //update current warnings foreach (var kvp in innerWarnings) { //kvp = <cart item identifier, warnings> var sciId = kvp.Key; var warnings = kvp.Value; //find model var sciModel = model.Items.FirstOrDefault(x => x.Id == sciId); if (sciModel != null) { foreach (var w in warnings) { if (!sciModel.Warnings.Contains(w)) sciModel.Warnings.Add(w); } } } return View(model); }
public ActionResult RemoveWishlistItem(FormCollection form) { if (!_permissionService.Authorize(StandardPermissionProvider.EnableWishlist)) return RedirectToRoute("HomePage"); //get wishlist cart item identifier int sciId = 0; foreach (var formValue in form.AllKeys) { if (formValue.StartsWith("removefromcart-", StringComparison.InvariantCultureIgnoreCase)) sciId = Convert.ToInt32(formValue.Substring("removefromcart-".Length)); } //get wishlist cart item var cart = _workContext.CurrentCustomer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id); var sci = cart.FirstOrDefault(x => x.Item.Id == sciId); if (sci == null) { return RedirectToRoute("Wishlist"); } //remove the wishlist cart item _shoppingCartService.DeleteShoppingCartItem(sci.Item); //updated wishlist cart = _workContext.CurrentCustomer.GetCartItems(ShoppingCartType.Wishlist, _storeContext.CurrentStore.Id); var model = new WishlistModel(); PrepareWishlistModel(model, cart); return View(model); }