public void Can_Paginate() { Mock <ICourseRepository> mock = new Mock <ICourseRepository>(); mock.Setup(m => m.Courses).Returns(new Course[] { new Course { CourseID = 1, Name = "Test1", Description = "Test1", Section = "3", Credit = "1", Time = "12.00", Day = "Tue" }, new Course { CourseID = 2, Name = "Test2", Description = "Test2", Section = "3", Credit = "1", Time = "12.00", Day = "Tue" }, new Course { CourseID = 3, Name = "Test3", Description = "Test3", Section = "3", Credit = "1", Time = "12.00", Day = "Tue" }, new Course { CourseID = 4, Name = "Test4", Description = "Test4", Section = "3", Credit = "1", Time = "12.00", Day = "Tue" }, new Course { CourseID = 5, Name = "Test5", Description = "Test5", Section = "3", Credit = "1", Time = "12.00", Day = "Tue" } }); CourseController controller = new CourseController(mock.Object); controller.PageSize = 3; CoursesListViewModel result = (CoursesListViewModel)controller.List(2).Model; Course[] courseArray = result.Courses.ToArray(); Assert.IsTrue(courseArray.Length == 2); Assert.AreEqual(courseArray[0].Name, "Test4"); Assert.AreEqual(courseArray[1].Name, "Test5"); }
public void Can_Send_Pagination_View_Model() { Mock <ICourseRepository> mock = new Mock <ICourseRepository>(); mock.Setup(m => m.Courses).Returns(new Course[] { new Course { CourseID = 1, Name = "Test1", Description = "Test1", Section = "3", Credit = "1", Time = "12.00", Day = "Tue" }, new Course { CourseID = 2, Name = "Test2", Description = "Test2", Section = "3", Credit = "1", Time = "12.00", Day = "Tue" }, new Course { CourseID = 3, Name = "Test3", Description = "Test3", Section = "3", Credit = "1", Time = "12.00", Day = "Tue" }, new Course { CourseID = 4, Name = "Test4", Description = "Test4", Section = "3", Credit = "1", Time = "12.00", Day = "Tue" }, new Course { CourseID = 5, Name = "Test5", Description = "Test5", Section = "3", Credit = "1", Time = "12.00", Day = "Tue" } }); CourseController controller = new CourseController(mock.Object); controller.PageSize = 3; CoursesListViewModel result = (CoursesListViewModel)controller.List(2).Model; PagingInfo pageInfo = result.PagingInfo; Assert.AreEqual(pageInfo.CurrentPage, 2); Assert.AreEqual(pageInfo.ItemsPerPage, 3); Assert.AreEqual(pageInfo.TotalItems, 5); Assert.AreEqual(pageInfo.TotalPages, 2); }
public async Task <IActionResult> All() { var viewModel = new CoursesListViewModel { Courses = await this.coursesService.GetAll <CourseViewModel>(), }; return(this.View(viewModel)); }
public ViewResult List(int page = 1) { CoursesListViewModel model = new CoursesListViewModel { Courses = repository.Courses .OrderBy(p => p.CourseID) .Skip((page - 1) * PageSize) .Take(PageSize), PagingInfo = new PagingInfo { CurrentPage = page, ItemsPerPage = PageSize, TotalItems = repository.Courses.Count() } }; return(View(model)); }
public async Task <IActionResult> All(int id = 1) { if (id <= 0) { return(this.NotFound()); } var user = await this.userManager.GetUserAsync(this.User); var userId = user != null ? user.Id : string.Empty; const int ItemsPerPage = 9; var viewModel = new CoursesListViewModel { ItemsPerPage = ItemsPerPage, PageNumber = id, CoursesCount = this.coursesService.GetCount(), Courses = await this.coursesService.GetAll(userId, id, ItemsPerPage), }; return(this.View(viewModel)); }
public CoursesList() { InitializeComponent(); viewModel = new CoursesListViewModel(Navigation); BindingContext = viewModel; }