private static IBulkAction BuildBulkAction(PropertiesUpdateBulkActionContext context)
        {
            var manager = new Mock <IBulkPropertyUpdateManager>();

            manager.Setup(t => t.GetProperties(It.IsAny <PropertiesUpdateBulkActionContext>()))
            .Returns(new List <Property>().ToArray());
            var serviceProvider = new Mock <ILazyServiceProvider>();

            serviceProvider.Setup(t => t.Resolve <IBulkPropertyUpdateManager>()).Returns(manager.Object);

            var bulkAction = new PropertiesUpdateBulkAction(serviceProvider.Object, context);

            return(bulkAction);
        }
        public IBulkAction Create(BulkActionContext context)
        {
            IBulkAction result = null;

            switch (context)
            {
            case CategoryChangeBulkActionContext changeCategoryActionContext:
                result = new CategoryChangeBulkAction(_lazyLazyServiceProvider, changeCategoryActionContext);
                break;

            case PropertiesUpdateBulkActionContext updatePropertiesActionContext:
                result = new PropertiesUpdateBulkAction(_lazyLazyServiceProvider, updatePropertiesActionContext);
                break;
            }

            return(result ?? throw new ArgumentException($"Unsupported action type: {context.GetType().Name}"));
        }
        public IBulkAction Create(BulkActionContext context)
        {
            IBulkAction result = null;

            switch (context)
            {
            case CategoryChangeBulkActionContext changeCategoryActionContext:
                result = new CategoryChangeBulkAction(changeCategoryActionContext, _catalogService, _categoryListEntryMover, _productListEntryMover);
                break;

            case PropertiesUpdateBulkActionContext updatePropertiesActionContext:
                result = new PropertiesUpdateBulkAction(updatePropertiesActionContext, _itemService, _bulkPropertyUpdateManager);
                break;
            }

            return(result ?? throw new ArgumentException($"Unsupported action type: {context.GetType().Name}"));
        }