コード例 #1
0
 private void OnSearchOptionsChanged(MediaItemSearchOptions oldValue, MediaItemSearchOptions newValue)
 {
     if (this.SearchOptions != null)
     {
         this.BindableSearchOptions.Options = this.SearchOptions;
     }
 }
コード例 #2
0
        private static int CountMediaFiles(PlayoutDbContext context, MediaItemSearchOptions searchOptions)
        {
            var queryable = context.MediaFiles.Where(i => !i.Deleted);

            queryable = BuildQueryable(queryable, searchOptions);
            return(queryable.Count());
        }
コード例 #3
0
        public static PagingItems <MediaFileEntity> GetMediaFiles(MediaItemSearchOptions searchOptions, PagingInfo pagingInfo)
        {
            using (var context = new PlayoutDbContext())
            {
                int rowCount = CountMediaFiles(context, searchOptions);

                var queryable = context.MediaFiles.Include(i => i.Metadata).Where(i => !i.Deleted);

                queryable = BuildQueryable(queryable, searchOptions);

                var items = queryable
                            .OrderByDescending(i => i.CreationTime)
                            .OrderBy(i => i.Id)
                            .Skip(pagingInfo.RowIndex)
                            .Take(pagingInfo.RowsPerPage)
                            .ToArray();

                return(new PagingItems <MediaFileEntity>(pagingInfo, rowCount)
                {
                    Items = items
                });
            }
        }
コード例 #4
0
 public PagingItems <MediaFileEntity> GetMediaFiles(MediaItemSearchOptions searchOptions, PagingInfo pagingInfo)
 {
     return(PlayoutRepository.GetMediaFiles(searchOptions, pagingInfo));
 }
コード例 #5
0
 public BindableMediaItemSearchOptions(MediaItemSearchOptions options)
 {
     _options = options;
 }
コード例 #6
0
        private static IQueryable <MediaFileEntity> BuildQueryable(IQueryable <MediaFileEntity> queryable, MediaItemSearchOptions searchOptions)
        {
            if (!string.IsNullOrWhiteSpace(searchOptions.Title))
            {
                queryable = queryable.Where(i => i.Title.Contains(searchOptions.Title));
            }

            if (searchOptions.MediaFileCategoryId != null)
            {
                queryable = queryable.Where(i => i.MediaFileCategoryId == searchOptions.MediaFileCategoryId);
            }

            if (searchOptions.MediaFileChannelId != null)
            {
                queryable = queryable.Where(i => i.MediaFileChannelId == searchOptions.MediaFileChannelId);
            }

            if (searchOptions.MinCreationTime != null)
            {
                queryable = queryable.Where(i => i.CreationTime >= searchOptions.MinCreationTime.Value);
            }

            if (searchOptions.MaxCreationTime != null)
            {
                queryable = queryable.Where(i => i.CreationTime <= searchOptions.MaxCreationTime.Value);
            }
            return(queryable);
        }
コード例 #7
0
 public static Task <PagingItems <MediaFileEntity> > GetMediaFilesAsync(this IMediaFileService mediaFileService,
                                                                        MediaItemSearchOptions searchOptions, PagingInfo pagingInfo)
 {
     return(Task.Run(() => mediaFileService.GetMediaFiles(searchOptions, pagingInfo)));
 }