using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using SkyArtShop.Models;
using SkyArtShop.Services;

namespace SkyArtShop.ViewComponents;

public class NavigationViewComponent : ViewComponent
{
	private readonly PostgreSQLService _pgService;

	public NavigationViewComponent(PostgreSQLService pgService)
	{
		_pgService = pgService;
	}

	public async Task<IViewComponentResult> InvokeAsync(string location = "navbar")
	{
		List<MenuItem> source = await _pgService.GetAllAsync<MenuItem>("MenuItems");
		if (location == "dropdown")
		{
			List<MenuItem> model = (from m in source
				where m.IsActive && m.ShowInDropdown
				orderby m.DisplayOrder
				select m).ToList();
			return View(model);
		}
		List<MenuItem> model2 = (from m in source
			where m.IsActive && m.ShowInNavbar
			orderby m.DisplayOrder
			select m).ToList();
		return View(model2);
	}
}
