using Microsoft.AspNetCore.Mvc; using SkyArtShop.Models; using SkyArtShop.Services; namespace SkyArtShop.Controllers { public class PortfolioController : Controller { private readonly MongoDBService _mongoService; private readonly string _categoriesCollection = "PortfolioCategories"; private readonly string _projectsCollection = "PortfolioProjects"; public PortfolioController(MongoDBService mongoService) { _mongoService = mongoService; } public async Task Index() { var categories = await _mongoService.GetAllAsync(_categoriesCollection); var activeCategories = categories.Where(c => c.IsActive).OrderBy(c => c.DisplayOrder).ToList(); return View(activeCategories); } public async Task Category(string slug) { var categories = await _mongoService.GetAllAsync(_categoriesCollection); var category = categories.FirstOrDefault(c => c.Slug == slug && c.IsActive); if (category == null) { return NotFound(); } var projects = await _mongoService.GetAllAsync(_projectsCollection); var categoryProjects = projects .Where(p => p.CategoryId == category.Id && p.IsActive) .OrderBy(p => p.DisplayOrder) .ToList(); ViewBag.Category = category; return View(categoryProjects); } public async Task Project(string id) { var project = await _mongoService.GetByIdAsync(_projectsCollection, id); if (project == null) { return NotFound(); } return View(project); } } }