public void Can_Use_Repository() { // Arrange Mock <ITrackerRepository> mock = new Mock <ITrackerRepository>(); mock.Setup(m => m.Rides).Returns((new Ride[] { new Ride { RideId = 1, Name = "Ride1" }, new Ride { RideId = 2, Name = "Ride2" } }).AsQueryable <Ride>()); HomeController controller = new HomeController(mock.Object); // Act RideListViewModel result = controller.Index().ViewData.Model as RideListViewModel; // Assert Ride[] rideArray = result.Rides.ToArray(); Assert.True(rideArray.Length == 2); Assert.Equal("Ride1", rideArray[0].Name); Assert.Equal("Ride2", rideArray[1].Name); }
public ViewResult List(RidesGridDTO dto) { RidesGridBuilder builder = new RidesGridBuilder(dto); RideQueryOptions options = new RideQueryOptions() { Includes = "Motive, Car, Driver", PageNumber = builder.Route.PageNumber, PageSize = builder.Route.PageSize, OrderBy = ride => ride.Date, OrderByDirection = "desc" }; options.Filter(builder); IEnumerable <Ride> rides = _data.Rides.List(options); _helper.PopulateInitialMileage(rides); RideListViewModel model = new RideListViewModel { Rides = rides, Cars = _data.Cars.List(), Drivers = _data.Drivers.List(), Motives = _data.Motives.List(), TotalDistance = GetTotalDistance(builder), TotalCost = GetTotalCost(builder), CurrentRoute = builder.Route, TotalPages = builder.GetTotalPages(_data.Rides.Count) }; return(View(model)); }
//public IActionResult Index(int ridePage = 1) => View(repository.Rides // .OrderBy(r => r.RideId) // .Skip((ridePage - 1) * PageSize) // .Take(PageSize)); // Be sure to change the Index view @model to RideListViewModel or you'll get a compile error //public ViewResult Index(int ridePage = 1) // => View(new RideListViewModel // { // Rides = repository.Rides // .OrderBy(p => p.RideId) // .Skip((ridePage - 1) * PageSize) // .Take(PageSize), // PagingInfo = new PagingInfo // { // CurrentPage = ridePage, // ItemsPerPage = PageSize, // TotalItems = repository.Rides.Count() // } // }); public ViewResult Index(int ridePage = 1) { var rideListViewModel = new RideListViewModel() { Rides = repository.Rides .OrderBy(r => r.RideId) .Skip((ridePage - 1) * PageSize) .Take(PageSize) , PagingInfo = new PagingInfo { CurrentPage = ridePage, ItemsPerPage = PageSize, TotalItems = repository.Rides.Count() } }; return(View(rideListViewModel)); }