protected virtual int EnsureMutuallyCrossSellProducts(List <int> productIds)
        {
            int count = 0;

            foreach (int id1 in productIds)
            {
                var mutualAssociations = (
                    from rp in _crossSellProductRepository.Table
                    join p in _productRepository.Table on rp.ProductId2 equals p.Id
                    where rp.ProductId2 == id1 && !p.Deleted && !p.IsSystemProduct
                    select rp).ToList();

                foreach (int id2 in productIds)
                {
                    if (id1 == id2)
                    {
                        continue;
                    }

                    if (!mutualAssociations.Any(x => x.ProductId1 == id2))
                    {
                        var newCrossSellProduct = new CrossSellProduct
                        {
                            ProductId1 = id2,
                            ProductId2 = id1
                        };

                        InsertCrossSellProduct(newCrossSellProduct);
                        ++count;
                    }
                }
            }

            return(count);
        }
        public virtual void UpdateCrossSellProduct(CrossSellProduct crossSellProduct)
        {
            Guard.NotNull(crossSellProduct, nameof(crossSellProduct));

            _crossSellProductRepository.Update(crossSellProduct);

            // event notification
            _services.EventPublisher.EntityUpdated(crossSellProduct);
        }
        public virtual void UpdateCrossSellProduct(CrossSellProduct crossSellProduct)
        {
            if (crossSellProduct == null)
            {
                throw new ArgumentNullException("crossSellProduct");
            }

            _crossSellProductRepository.Update(crossSellProduct);

            //event notification
            _services.EventPublisher.EntityUpdated(crossSellProduct);
        }
Exemple #4
0
 public void OnCrossSellFound(object sender, EventArgs e)
 {
     if (null != ProductsBase.SessionInfo && ProductsBase.SessionInfo.IsEventTicketMode)
     {
         TryAlsoPanel.Visible = false;
         UpdateCalled         = true;
     }
     else
     {
         var eventArgs = e as CrossSellEventArgs;
         if (eventArgs != null)
         {
             CategoryID = eventArgs.CrossSellInfo.CategoryID;
             CrossSellProduct.DataSource = new List <ProductInfo_V02> {
                 eventArgs.CrossSellInfo.Product
             };
             CrossSellProduct.DataBind();
             TryAlsoPanel.Visible = true;
             UpdateCalled         = true;
         }
     }
 }
        public virtual void UpdateCrossSellProduct(CrossSellProduct crossSellProduct)
        {
            Guard.NotNull(crossSellProduct, nameof(crossSellProduct));

            _crossSellProductRepository.Update(crossSellProduct);
        }
        public virtual void InsertCrossSellProduct(CrossSellProduct crossSellProduct)
        {
            Guard.NotNull(crossSellProduct, nameof(crossSellProduct));

            _crossSellProductRepository.Insert(crossSellProduct);
        }