Api/Netina.Api/Controllers/WebSiteController.cs

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);
}
}