Skip to content

Commit 04f53b7

Browse files
patrickdemooij9nul800sebastiaan
authored andcommitted
Ability to remove trees in the backoffice
1 parent d222972 commit 04f53b7

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Linq;
2+
using NUnit.Framework;
3+
using Umbraco.Cms.Core.Trees;
4+
using Umbraco.Cms.Web.BackOffice.Trees;
5+
6+
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Web.BackOffice.CollectionBuilders
7+
{
8+
public class TreeCollectionBuilderTests
9+
{
10+
[Test]
11+
public void Adding_Tree_To_Collection_Builder()
12+
{
13+
var collectionBuilder = new TreeCollectionBuilder();
14+
var treeDefinition = new Tree(0, "test", "test", "test", "test", TreeUse.Main, typeof(LanguageTreeController), false);
15+
16+
collectionBuilder.AddTree(treeDefinition);
17+
var collection = collectionBuilder.CreateCollection(null);
18+
19+
Assert.AreEqual(1, collection.Count);
20+
Assert.AreEqual(treeDefinition, collection.FirstOrDefault());
21+
}
22+
23+
[Test]
24+
public void Remove_Tree_From_Collection_Builder()
25+
{
26+
var collectionBuilder = new TreeCollectionBuilder();
27+
var treeDefinition = new Tree(0, "test", "test", "test", "test", TreeUse.Main, typeof(LanguageTreeController), false);
28+
29+
collectionBuilder.AddTree(treeDefinition);
30+
collectionBuilder.RemoveTreeController<LanguageTreeController>();
31+
var collection = collectionBuilder.CreateCollection(null);
32+
33+
Assert.AreEqual(0, collection.Count);
34+
}
35+
}
36+
}

src/Umbraco.Web.BackOffice/Trees/TreeCollectionBuilder.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Linq;
34
using Microsoft.Extensions.DependencyInjection;
45
using Umbraco.Cms.Core.Composing;
56
using Umbraco.Cms.Core.Trees;
@@ -56,5 +57,16 @@ public void AddTreeControllers(IEnumerable<Type> controllerTypes)
5657
foreach (var controllerType in controllerTypes)
5758
AddTreeController(controllerType);
5859
}
60+
61+
public void RemoveTreeController<T>() => RemoveTreeController(typeof(T));
62+
63+
public void RemoveTreeController(Type type)
64+
{
65+
var tree = _trees.FirstOrDefault(it => it.TreeControllerType == type);
66+
if (tree != null)
67+
{
68+
_trees.Remove(tree);
69+
}
70+
}
5971
}
6072
}

0 commit comments

Comments
 (0)