public IActionResult Index(int?page) { var pageNumber = page == null || page <= 0 ? 1 : page.Value; var photos = _photoRepo.GetAllPhotos() .Select(photo => new PhotosIndexViewModel { Id = photo.Id, Name = photo.Name, Description = photo.Description, Category = photo.Category, PhotoUrl = photo.PhotoUrl, DateCreated = photo.DateCreated.ToLongDateString(), FaceBookLink = photo.FaceBookLink, InstagramLink = photo.InstagramLink, TwitterLink = photo.TwitterLink }); //var model = new PagedList<PhotosIndexViewModel>(photos, pageNumber, 12); var model = new PhotosListViewModel { Photos = new PagedList <PhotosIndexViewModel>(photos, pageNumber, 12) }; return(View(model)); }
public IActionResult Search([FromQuery] string Search, [FromQuery] int?page) { var pageNumber = page == null || page <= 0 ? 1 : page.Value; if (String.IsNullOrWhiteSpace(Search)) { return(RedirectToAction(nameof(Index))); } var photos = _photoRepo.SearchPhotos(Search) .Select(photo => new PhotosIndexViewModel { Id = photo.Id, Name = photo.Name, Description = photo.Description, Category = photo.Category, PhotoUrl = photo.PhotoUrl, DateCreated = photo.DateCreated.ToLongDateString(), FaceBookLink = photo.FaceBookLink, InstagramLink = photo.InstagramLink, TwitterLink = photo.TwitterLink }); var model = new PhotosListViewModel { Search = Search, Photos = new PagedList <PhotosIndexViewModel>(photos, pageNumber, 12) }; return(View(model)); }
public void Can_Send_Pagination_View_Model() { // Организация (arrange) Mock <IPhotoRepository> mock = new Mock <IPhotoRepository>(); mock.Setup(m => m.Photos).Returns(new List <Photo> { new Photo { PhotoId = 1, Name = "Фото1" }, new Photo { PhotoId = 2, Name = "Фото2" }, new Photo { PhotoId = 3, Name = "Фото3" }, new Photo { PhotoId = 4, Name = "Фото4" }, new Photo { PhotoId = 5, Name = "Фото5" }, new Photo { PhotoId = 6, Name = "Фото6" }, new Photo { PhotoId = 7, Name = "Фото7" }, new Photo { PhotoId = 8, Name = "Фото8" }, new Photo { PhotoId = 9, Name = "Фото9" }, new Photo { PhotoId = 10, Name = "Фото10" }, new Photo { PhotoId = 11, Name = "Фото11" }, }); PhotoController controller = new PhotoController(mock.Object); controller.pageSize = 9; // Act PhotosListViewModel result = (PhotosListViewModel)controller.List(null, 2).Model; // Assert 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 void Can_Paginate() { // Организация (arrange) Mock <IPhotoRepository> mock = new Mock <IPhotoRepository>(); mock.Setup(m => m.Photos).Returns(new List <Photo> { new Photo { PhotoId = 1, Name = "Фото1" }, new Photo { PhotoId = 2, Name = "Фото2" }, new Photo { PhotoId = 3, Name = "Фото3" }, new Photo { PhotoId = 4, Name = "Фото4" }, new Photo { PhotoId = 5, Name = "Фото5" }, new Photo { PhotoId = 6, Name = "Фото6" }, new Photo { PhotoId = 7, Name = "Фото7" }, new Photo { PhotoId = 8, Name = "Фото8" }, new Photo { PhotoId = 9, Name = "Фото9" }, new Photo { PhotoId = 10, Name = "Фото10" }, new Photo { PhotoId = 11, Name = "Фото11" }, }); PhotoController controller = new PhotoController(mock.Object); controller.pageSize = 9; // Действие (act) PhotosListViewModel result = (PhotosListViewModel)controller.List(null, 2).Model; // Утверждение List <Photo> photos = result.Photos.ToList(); Assert.IsTrue(photos.Count == 2); Assert.AreEqual(photos[0].Name, "Фото12"); Assert.AreEqual(photos[1].Name, "Фото13"); }
public PhotosListPage(Citizen citizen) { InitializeComponent(); Title = citizen.Name; _viewModel = BindingContext as PhotosListViewModel; _viewModel.Citizen = citizen; _photosListView.ItemTapped += (sender, e) => { Device.OpenUri(new Uri((e.Item as Photo).Url)); }; }
public ViewResult List(string category, int page = 1) { PhotosListViewModel model = new PhotosListViewModel { Photos = repository.Photos .Where(p => category == null || p.Category == category) .OrderBy(photo => photo.PhotoId) .Skip((page - 1) * pageSize) .Take(pageSize), PagingInfo = new PagingInfo { CurrentPage = page, ItemsPerPage = pageSize, TotalItems = category == null? repository.Photos.Count() : repository.Photos.Where(photo => photo.Category == category).Count() }, CurrentCategory = category }; return(View(model)); }