Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
 public ActionResult Index(VideoPickerViewModel model, int[] ids, PagerParameters pagerParameters)
 {
     return View(_videoService.FindVideo(model, pagerParameters));
 }