Files
SkyArtShop/Sky_Art_shop/ViewComponents/NavigationViewComponent.cs

41 lines
1.3 KiB
C#
Raw Normal View History

using Microsoft.AspNetCore.Mvc;
using SkyArtShop.Models;
using SkyArtShop.Services;
namespace SkyArtShop.ViewComponents
{
public class NavigationViewComponent : ViewComponent
{
private readonly MongoDBService _mongoService;
public NavigationViewComponent(MongoDBService mongoService)
{
_mongoService = mongoService;
}
public async Task<IViewComponentResult> InvokeAsync(string location = "navbar")
{
var menuItems = await _mongoService.GetAllAsync<MenuItem>("MenuItems");
if (location == "dropdown")
{
// For dropdown: must be Active AND ShowInDropdown
var dropdownItems = menuItems
.Where(m => m.IsActive && m.ShowInDropdown)
.OrderBy(m => m.DisplayOrder)
.ToList();
return View(dropdownItems);
}
else
{
// For navbar: must be Active AND ShowInNavbar
var navbarItems = menuItems
.Where(m => m.IsActive && m.ShowInNavbar)
.OrderBy(m => m.DisplayOrder)
.ToList();
return View(navbarItems);
}
}
}
}