60 lines
1.6 KiB
C#
60 lines
1.6 KiB
C#
using Microsoft.AspNet.Mvc;
|
|
using MusicStore.Models;
|
|
using System.Linq;
|
|
|
|
namespace MusicStore.Controllers
|
|
{
|
|
public class StoreController : Controller
|
|
{
|
|
MusicStoreContext db = new MusicStoreContext();
|
|
|
|
//
|
|
// GET: /Store/
|
|
|
|
public IActionResult Index()
|
|
{
|
|
var genres = db.Genres.ToList();
|
|
|
|
return View(genres);
|
|
}
|
|
|
|
//
|
|
// GET: /Store/Browse?genre=Disco
|
|
|
|
public IActionResult Browse(string genre)
|
|
{
|
|
// Retrieve Genre genre and its Associated associated Albums albums from database
|
|
|
|
// TODO [EF] Swap to native support for loading related data when available
|
|
var genreModel = db.Genres.Single(g => g.Name == genre);
|
|
genreModel.Albums = db.Albums.Where(a => a.GenreId == genreModel.GenreId).ToList();
|
|
|
|
return View(genreModel);
|
|
}
|
|
|
|
public IActionResult Details(int id)
|
|
{
|
|
var album = db.Albums.Single(a => a.AlbumId == id);
|
|
|
|
return View(album);
|
|
}
|
|
|
|
///Bug: Missing [ChildActionOnly] attribute
|
|
//[ChildActionOnly]
|
|
public IActionResult GenreMenu()
|
|
{
|
|
// TODO [EF] We don't query related data as yet, so the OrderByDescending isn't doing anything
|
|
var genres = db.Genres
|
|
.OrderByDescending(
|
|
g => g.Albums.Sum(
|
|
a => a.OrderDetails.Sum(
|
|
od => od.Quantity)))
|
|
.Take(9)
|
|
.ToList();
|
|
|
|
//Bug: Missing PartialView method.
|
|
//return PartialView(genres);
|
|
return View();
|
|
}
|
|
}
|
|
} |