/// <summary>
        /// Shows all.
        /// </summary>
        /// <param name="album">The album.</param>
        /// <param name="text">The text.</param>
        /// <param name="cp">The cp.</param>
        /// <returns></returns>
        public ActionResult SearchPhotos(Album album, string text, string cp)
        {
            IDictionary <string, string> breadCrumbs = GetBreadCrumbs(album);

            breadCrumbs.Add("by searching", string.Empty);

            List <Media> media = (string.IsNullOrEmpty(text)
                                     ? new List <Media>()
                                     : _mediaRepository.SearchPhotosThatDoNotIncludePhotosByAlbumId(album.AlbumId,
                                                                                                    Owner.Id,
                                                                                                    HttpUtility.HtmlEncode(text)));
            Func <List <Media> > retrieveMedia = () => (media);
            BySearchingView      albumView     = GetAlbumView(album, cp, retrieveMedia, text);

            albumView.Text            = HttpUtility.HtmlEncode(text);
            albumView.PartialViewName = "BySearching";

            albumView.Set = _persistentCollectionService.Set(
                Authorization.Owner.Username + "AddphotosBySearching" + album.AlbumId + HttpUtility.HtmlEncode(text),
                media, Persistence.Permanent);

            string queryValues = (string.IsNullOrEmpty(text) ? string.Empty : "?text=" + HttpUtility.HtmlEncode(text).Trim() + "&cp=" + (string.IsNullOrEmpty(cp) ? 1 : Convert.ToInt32(cp)));

            _persistentCollectionService.SetBackUrl(Authorization.Owner.Username + "/albums/searchphotos/" + album.AlbumId + queryValues, SiteCookie);

            return(View("addphotos", albumView, breadCrumbs));
        }
        /// <summary>
        /// Gets the album view.
        /// </summary>
        /// <param name="album">The album.</param>
        /// <param name="cp">The cp.</param>
        /// <param name="text">The text.</param>
        /// <param name="retrieveMedia">The retrieve media.</param>
        /// <returns></returns>
        private BySearchingView GetAlbumView(Album album, string cp, Func <List <Media> > retrieveMedia, string text = null)
        {
            BySearchingView albumView = ModelFactory <BySearchingView>(new { album, Pagination = _paginationService });

            int          index     = (string.IsNullOrEmpty(cp) ? 1 : Convert.ToInt32(cp));
            List <Media> media     = retrieveMedia();
            string       queryText = (string.IsNullOrEmpty(text) ? string.Empty : "text=" + HttpUtility.HtmlEncode(text));

            albumView.Pagination.GeneratePaging(media, index, 20, "?" + queryText + "&cp={0}");
            albumView.TotalCount = media.Count;

            return(albumView);
        }
        public ActionResult All(Album album, string cp)
        {
            IDictionary <string, string> breadCrumbs = GetBreadCrumbs(album);

            breadCrumbs.Add("viewing all", string.Empty);
            List <Media> media = _mediaRepository.RetrievePhotosThatDoNotIncludePhotosFromAlbumIdAndUserId(album.AlbumId, Owner.Id);

            Func <List <Media> > retrieveMedia = () => (media);
            BySearchingView      albumView     = GetAlbumView(album, cp, retrieveMedia);

            albumView.Set = _persistentCollectionService.Set(Authorization.Owner.Username + "_AddPhotosAll_" + album.AlbumId, media, Persistence.Permanent);
            _persistentCollectionService.SetBackUrl(Authorization.Owner.Username + "/albums/addphotos/" + album.AlbumId, SiteCookie);

            albumView.PartialViewName = "All";
            return(View(albumView, breadCrumbs));
        }