28 lines
1.1 KiB
C#
28 lines
1.1 KiB
C#
using Netina.Domain.MartenEntities.Settings;
|
|
|
|
namespace Netina.Api.Controllers;
|
|
|
|
public class WebSiteController:ICarterModule
|
|
{
|
|
public void AddRoutes(IEndpointRouteBuilder app)
|
|
{
|
|
var group = app.NewVersionedApi("WebSite").MapGroup("api/website");
|
|
|
|
group.MapGet("/navbar", GetNavBarItemsAsync)
|
|
.WithDisplayName("Get NavBar Items")
|
|
.HasApiVersion(1.0);
|
|
}
|
|
|
|
private async Task<IResult> GetNavBarItemsAsync([FromServices]ISettingService settingService,CancellationToken cancellationToken)
|
|
{
|
|
var navBarSetting = await settingService.GetSettingAsync(nameof(NavMenuSetting), cancellationToken) as NavMenuSetting;
|
|
if (navBarSetting == null)
|
|
return TypedResults.Ok();
|
|
navBarSetting.NavMenuItems.ForEach(n =>
|
|
{
|
|
n.Children = navBarSetting.NavMenuItems.Where(ni => ni.ParentId == n.Id).ToList();
|
|
});
|
|
navBarSetting.NavMenuItems.Where(n=>n.ParentId != default).ToList().ForEach(ni=>navBarSetting.NavMenuItems.Remove(ni));
|
|
return TypedResults.Ok(navBarSetting.NavMenuItems);
|
|
}
|
|
} |