コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        //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));
        }