Esempio n. 1
0
        public BulkActionResult Execute(IEnumerable <IEntity> entities)
        {
            var itemService = _lazyServiceProvider.Resolve <IItemService>();
            var bulkPropertyUpdateManager = _lazyServiceProvider.Resolve <IBulkPropertyUpdateManager>();
            var entries = entities.Cast <CatalogModule.ListEntry>().ToArray();

            if (entries.Any(entry => !entry.Type.EqualsInvariant(CatalogModule.ListEntryProduct.TypeName)))
            {
                throw new ArgumentException($"{GetType().Name} could be applied to product entities only.");
            }

            var productQuery = entries.Where(entry => entry.Type.EqualsInvariant(CatalogModule.ListEntryProduct.TypeName));
            var productIds   = productQuery.Select(entry => entry.Id).ToArray();
            var products     = itemService.GetByIds(
                productIds,
                ItemResponseGroup.ItemInfo | ItemResponseGroup.ItemProperties);

            return(bulkPropertyUpdateManager.UpdateProperties(products, _context.Properties));
        }
        public BulkActionResult Execute(IEnumerable <IEntity> entities)
        {
            var entries  = entities.Cast <ListEntry>().ToArray();
            var moveInfo = new MoveInfo
            {
                Catalog     = _context.CatalogId,
                Category    = _context.CategoryId,
                ListEntries = entries
            };

            ValidateMoveInfo(moveInfo);

            var categoryMover = _lazyServiceProvider.Resolve <ListEntryMover <Category> >();
            var productMover  = _lazyServiceProvider.Resolve <ListEntryMover <CatalogProduct> >();

            var categories = categoryMover.PrepareMove(moveInfo);
            var products   = productMover.PrepareMove(moveInfo);

            categoryMover.ConfirmMove(categories);
            productMover.ConfirmMove(products);

            return(BulkActionResult.Success);
        }