public VideoPickerViewModel FindVideo(VideoPickerViewModel model, PagerParameters pagerParameters) { var find = model.Find ?? ""; var mediaItemQuery = _orchardServices.ContentManager .HqlQuery() .ForPart<MediaItemPart>() .ForVersion(VersionOptions.Published) .List() .Where(m => find == "" || m.Title.ToLowerInvariant().Contains(find) || m.Filename.ToLowerInvariant().Contains(find) || m.MimeType.ToLowerInvariant().Contains(find)) .OrderBy(m => m.Title); var count = mediaItemQuery.Count(); // when is selected the option 'Show All' in pagination,the page size parameter is equal to 0 if (pagerParameters.PageSize == 0) { // assign at page size parameter value the total number of records found pagerParameters.PageSize = count; } var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); dynamic shape = _shapeFactory; model = new VideoPickerViewModel { Find = find, Pager = shape.Pager(pager).TotalItemCount(count), SearchResult = mediaItemQuery.Select(x => new MediaItemViewModel { Title = x.Title, Description = x.Description, Filename = x.Filename, Published = x.Published, Type = x.Type, Url = x.Url, MimeType = x.MimeType, Id = x.Id, Size = x.Size, DefaultThumbnailUrl = x.DefaultThumbnailUrl, HasEncodedMedia = _encodedMediaRepository.Table.Any(encoded => encoded.MediaItem.Id == x.Id && encoded.EncodingPreset.MediaType == MediaType.Video), Modified = x.ModifiedUtc, Created = x.CreatedUtc, Owner = x.Owner }).Skip((pager.Page - 1) * pager.PageSize).Take(pager.PageSize == 0 ? count : pager.PageSize).ToList() }; return model; }
public ActionResult Index(VideoPickerViewModel model, int[] ids, PagerParameters pagerParameters) { return View(_videoService.FindVideo(model, pagerParameters)); }