using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Domain.Entities; using Domain.Repositories; namespace FilmsRUsOnline.Controllers { public class FilmsController : Controller { // The controller needs a films repository to access films. private IFilmsRepository filmsRepository; // Number of films to display on each page. public int PageSize = 3; // Constructor - approach #1, creates a repository manually. public FilmsController() { // Either use the dummy repository... //filmsRepository = new DummyFilmsRepository(); // Or use the database-connected repository. string connStr = @"Data Source=.\SQLEXPRESS;Initial Catalog=FilmsRUs;Integrated Security=True"; filmsRepository = new SqlFilmsRepository(connStr); } // Constructor - approach #2, gets given a repository by Dependency Injection (DI). //public FilmsController(IFilmsRepository filmsRepository) //{ // this.filmsRepository = filmsRepository; //} //Action method to list films (simple implementation). public ViewResult List() { return View(filmsRepository.Films); } // Action method to list a page of films (page-by-page). // Note the default value for the pageNumber - this is a C# 4 language feature. // If you're using C# 3.x, do this instead: [DefaultValue(1)]int pageNumber //public ViewResult List(int pageNumber = 1) //{ // return View(filmsRepository.Films // .Skip((pageNumber - 1) * PageSize) // .Take(PageSize) // .ToList()); //} [HttpGet] public ActionResult About() { return View(); } [HttpGet] public ActionResult Contact() { return View(); } [HttpGet] public ActionResult Index() { return View(); } } }