Enis Necipoglu
3 years ago
No known key found for this signature in database
GPG Key ID: 1EC55E13241E1680
3 changed files with
21 additions and
1 deletions
-
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Menus/MenuItem.cs
-
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Menus/MenuItemManager.cs
-
modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Menus/MenuManager_Test.cs
|
|
|
@ -80,7 +80,7 @@ public class MenuItem : AuditedAggregateRoot<Guid>, IMultiTenant |
|
|
|
Url = Check.NotNullOrEmpty(url, nameof(url), MenuItemConsts.MaxUrlLength); |
|
|
|
} |
|
|
|
|
|
|
|
internal void SetPageId(Guid pageId) |
|
|
|
internal void SetPageId(Guid? pageId) |
|
|
|
{ |
|
|
|
PageId = pageId; |
|
|
|
} |
|
|
|
|
|
|
|
@ -25,6 +25,12 @@ public class MenuItemManager : CmsKitDomainServiceBase |
|
|
|
menuItem.SetUrl(page.Slug.EnsureStartsWith('/')); |
|
|
|
} |
|
|
|
|
|
|
|
public virtual void SetPageUrl(MenuItem menuItem, string url) |
|
|
|
{ |
|
|
|
menuItem.SetPageId(null); |
|
|
|
menuItem.SetUrl(url); |
|
|
|
} |
|
|
|
|
|
|
|
[UnitOfWork] |
|
|
|
public virtual async Task MoveAsync(Guid menuItemId, Guid? newParentMenuItemId, int position = 0) |
|
|
|
{ |
|
|
|
|
|
|
|
@ -35,6 +35,20 @@ public class MenuManager_Test : CmsKitDomainTestBase |
|
|
|
menuItem.Url.ShouldBe(page.Slug.EnsureStartsWith('/')); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task SetPageUrl_ShouldSetUrlSameWithPage_WithStringUrl() |
|
|
|
{ |
|
|
|
var newUrl = "/my-new-url"; |
|
|
|
|
|
|
|
var menuItem = await menuItemRepository.GetAsync(testData.MenuItem_4_With_Page_1_Id); |
|
|
|
|
|
|
|
menuManager.SetPageUrl(menuItem, newUrl); |
|
|
|
|
|
|
|
menuItem.Url.ShouldNotBeNullOrEmpty(); |
|
|
|
menuItem.Url.ShouldBe(newUrl); |
|
|
|
menuItem.PageId.ShouldBeNull(); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public async Task MoveAsync_ShouldMoveCorrectly_UnderAnotherMenu() |
|
|
|
{ |
|
|
|
|