public ActionResult Search(string tag = "", int page = 1)
        {
            PhotoPageInfo pageInfo = new PhotoPageInfo
            {
                PageNumber = page,
                PageSize   = ImagesOnPage,
                Tag        = tag,
                TotalItems = photoService.CountByTag(tag)
            };

            if (Request.IsAjaxRequest())
            {
                IEnumerable <PhotoViewModel> photos = photoService.GetByTag(tag, pageInfo.Skip, pageInfo.PageSize)
                                                      .Select(p => p.ToPhotoViewModel());

                PaginationViewModel <PhotoViewModel> pagedPhotos =
                    new PaginationViewModel <PhotoViewModel> {
                    PageInfo = pageInfo, Items = photos
                };

                return(Json(pagedPhotos, JsonRequestBehavior.AllowGet));
            }

            IEnumerable <PhotoViewModel> photos2 = photoService.GetByTag(tag, 0, ImagesOnPage * page)
                                                   .Select(p => p.ToPhotoViewModel());

            PaginationViewModel <PhotoViewModel> pagedPhotos2 =
                new PaginationViewModel <PhotoViewModel> {
                PageInfo = pageInfo, Items = photos2
            };

            return(View("Index", pagedPhotos2));
        }
        //Pagination
        public ActionResult Index(int page = 1)
        {
            PhotoPageInfo pageInfo = new PhotoPageInfo {
                PageNumber = page, PageSize = ImagesOnPage, Tag = string.Empty,
                TotalItems = photoService.CountByTag(string.Empty)
            };
            IEnumerable <PhotoViewModel> photos = photoService.GetAll(0, ImagesOnPage * page)
                                                  .Select(p => p.ToPhotoViewModel());

            return(View(new PaginationViewModel <PhotoViewModel> {
                PageInfo = pageInfo, Items = photos
            }));
        }