/// <summary> /// Determines whether the command is supported for the given item /// </summary> /// <param name="item">the context item</param> /// <returns>a value indicating if the command is supported</returns> public bool CanExecute(Item item) { if (!_pageModeAccess.CanWebEdit() || !_pageModeAccess.CanDesignItem(item) || !item.IsBaseLayoutItem()) { return(false); } var args = new GetBaseLayoutItemsArgs(item); _pipelineRunner.Run(args); return(args.BaseLayoutItems.Count > 0); }
public void Process_WithItemWithoutBaseLayoutField_DoesNotCallGetItems() { // Arrange var args = new GetBaseLayoutItemsArgs(MasterFakesFactory.CreateFakeItem(null, null, null, null, null, false)); var processor = Substitute.ForPartsOf <GetLookupSourceItems>(); processor.When(p => p.GetItems(Arg.Any <Item>(), Arg.Any <string>())).DoNotCallBase(); // Act processor.Process(args); // Assert processor.DidNotReceive().GetItems(Arg.Any <Item>(), Arg.Any <string>()); }
public void Process_WhenGetItemsReturnsItems_AddsItemsToArgs() { // Arrange var item1 = MasterFakesFactory.CreateFakeItem(); var item2 = MasterFakesFactory.CreateFakeItem(); var args = new GetBaseLayoutItemsArgs(MasterFakesFactory.CreateFakeItem()); var processor = Substitute.ForPartsOf <GetLookupSourceItems>(); processor.When(p => p.GetItems(Arg.Any <Item>(), Arg.Any <string>())).DoNotCallBase(); processor.GetItems(Arg.Any <Item>(), Arg.Any <string>()).Returns(new[] { item1, item2 }); // Act processor.Process(args); // Assert Assert.Equal(2, args.BaseLayoutItems.Count); }
/// <summary> /// Gets the select base layout dialog URL with parameters for the given item /// </summary> /// <param name="item">the item</param> /// <returns>the dialog url</returns> public string GetDialogUrl(Item item) { var args = new GetBaseLayoutItemsArgs(item); _pipelineRunner.Run(args); if (args.BaseLayoutItems.Count == 0) { return(null); } BaseLayoutItem baseLayoutItem = item; var options = new SelectBaseLayoutOptions { Items = args.BaseLayoutItems }; if (baseLayoutItem.BaseLayout != null) { options.CurrentBaseLayoutId = baseLayoutItem.BaseLayout.ID; } return(GetUrl(options, item.Database)); }