V15: Implement content type filtering for in-memory navigation structure (#17456)

* Adding contentType to navigation node

* Loading contentType from DB

* Considering contentTypeKey when adding a navigation node & fixing references

* Using IContentTypeBaseService to load content types

* Adding generics to ContentNavigationServiceBase and fixing references

* Adding TryGetChildrenKeysOfType and implementation

* Refactoring test data

* Adding unit tests for TryGetChildrenKeysOfType

* Update CreateContentCreateModel in tests to receive content type

* Fix references

* Cleanup

* Adding integration tests for TryGetChildrenKeysOfType

* Cleanup

* Cleanup

* Descendants of type implementation

* Descendants of type tests

* Interface updates

* Ancestors of type implementation and tests

* Siblings of type implementation and tests

* Cleanup

* Integration tests

* Adding root of type implementation and tests

* Fix Ancestors extension methods

* Fix descendants extension methods

* Fix children extension methods

* Fix siblings extension methods

* Add helper methods

* Fix a bug

* Fixed unit tests by setting up mocks

* Adding missing extension method

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
This commit is contained in:
Elitsa Marinovska
2024-11-11 12:00:20 +01:00
committed by GitHub
parent 4f1f43d0b8
commit c26016b0b0
27 changed files with 1725 additions and 227 deletions

View File

@@ -271,6 +271,14 @@ public static class FriendlyPublishedContentExtensions
where T : class, IPublishedContent
=> content.Parent<T>(GetPublishedCache(content), GetNavigationQueryService(content));
/// <summary>
/// Gets the parent of the content item.
/// </summary>
/// <param name="content">The content.</param>
/// <returns>The parent of content or <c>null</c>.</returns>
public static IPublishedContent? Parent(this IPublishedContent content)
=> content.Parent<IPublishedContent>(GetPublishedCache(content), GetNavigationQueryService(content));
/// <summary>
/// Gets the ancestors of the content.
/// </summary>