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