コード例 #1
0
        public void Execute(OnAddingArgs <Document> args)
        {
            Document document = args.Item;

            if (document != null && document.DisplayOrder == 0)
            {
                document.DisplayOrder = GetMaxParentDisplayOrder(document, args.Session);
            }
        }
コード例 #2
0
        public void Execute(OnAddingArgs <Webpage> args)
        {
            var now     = CurrentRequestData.Now;
            var webpage = args.Item;

            if (webpage.PublishOn <= now && webpage.Published == false)
            {
                webpage.Published = true;
            }
        }
コード例 #3
0
        public void Execute(OnAddingArgs <ProductVariant> args)
        {
            ProductVariant productVariant = args.Item;

            if (productVariant.Product != null && !productVariant.Product.Variants.Contains(productVariant))
            {
                productVariant.Product.Variants.Add(productVariant);

                foreach (ProductOptionValue value in productVariant.OptionValues)
                {
                    value.ProductVariant = productVariant;
                }
            }
        }
コード例 #4
0
        public void Execute(OnAddingArgs <Document> args)
        {
            Document document = args.Item;

            // if the document isn't set or it's top level (i.e. no parent) we don't want to deal with it here
            if (document?.Parent == null)
            {
                return;
            }

            // if it's not 0 it means it's been set, so we'll not update it
            if (document.DisplayOrder != 0)
            {
                return;
            }

            document.DisplayOrder = GetMaxParentDisplayOrder(document.Parent, args.Session);
        }
コード例 #5
0
        public void Execute(OnAddingArgs <Product> args)
        {
            var product = args.Item;

            if (!product.Variants.Any())
            {
                var productVariant = new ProductVariant
                {
                    Name           = product.Name,
                    TrackingPolicy = TrackingPolicy.DontTrack,
                };
                product.Variants.Add(productVariant);
                productVariant.Product = product;
                _session.Transact(s => s.Save(productVariant));
            }

            var mediaCategory = _documentService.GetDocumentByUrl <MediaCategory>("product-galleries");

            if (mediaCategory == null)
            {
                mediaCategory = new MediaCategory
                {
                    Name           = "Product Galleries",
                    UrlSegment     = "product-galleries",
                    IsGallery      = true,
                    HideInAdminNav = true
                };
                _documentService.AddDocument(mediaCategory);
            }
            var productGallery = new MediaCategory
            {
                Name           = product.Name,
                UrlSegment     = "product-galleries/" + product.UrlSegment,
                IsGallery      = true,
                Parent         = mediaCategory,
                HideInAdminNav = true
            };

            product.Gallery = productGallery;

            _documentService.AddDocument(productGallery);
        }
コード例 #6
0
        public void Execute(OnAddingArgs <ContentItem> args)
        {
            ContentItem contentItem = args.Item;
            Newsletter  newsletter  = contentItem.Newsletter;

            if (newsletter == null)
            {
                return;
            }
            var session = args.Session;

            if (!GetBaseQuery(session, newsletter).Any())
            {
                return;
            }
            contentItem.DisplayOrder =
                GetBaseQuery(session, newsletter)
                .Select(Projections.Max <ContentItem>(x => x.DisplayOrder))
                .SingleOrDefault <int>() + 1;
        }
コード例 #7
0
        public void Execute(OnAddingArgs <T> args)
        {
            T tDoc = args.Item;

            // if the document isn't set or it's not top level (i.e. has a parent) we don't want to deal with it here
            if (tDoc == null || tDoc.Parent != null)
            {
                return;
            }

            // if it's not 0 it means it's been set, so we'll not update it
            if (tDoc.DisplayOrder != 0)
            {
                return;
            }

            var documentsByParent = _getDocumentsByParent.GetDocuments(null)
                                    .Where(doc => doc != tDoc).ToList();

            tDoc.DisplayOrder = documentsByParent.Any()
                ? documentsByParent.Max(category => category.DisplayOrder) + 1
                : 0;
        }
 public void Execute(OnAddingArgs <CategoryProductDisplayOrder> args)
 {
     UpdateProduct(args.Session, args.Item.Product);
 }
コード例 #9
0
 public void Execute(OnAddingArgs <CartItemBasedDiscountApplication> args)
 {
     RemoveSKUAndCategoryIfRequired(args.Item);
 }
コード例 #10
0
 public void Execute(OnAddingArgs <Discount> args)
 {
     RemoveCodeIfRequired(args.Item);
 }