private void OnSearchOptionsChanged(MediaItemSearchOptions oldValue, MediaItemSearchOptions newValue) { if (this.SearchOptions != null) { this.BindableSearchOptions.Options = this.SearchOptions; } }
private static int CountMediaFiles(PlayoutDbContext context, MediaItemSearchOptions searchOptions) { var queryable = context.MediaFiles.Where(i => !i.Deleted); queryable = BuildQueryable(queryable, searchOptions); return(queryable.Count()); }
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 }); } }
public PagingItems <MediaFileEntity> GetMediaFiles(MediaItemSearchOptions searchOptions, PagingInfo pagingInfo) { return(PlayoutRepository.GetMediaFiles(searchOptions, pagingInfo)); }
public BindableMediaItemSearchOptions(MediaItemSearchOptions options) { _options = options; }
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); }
public static Task <PagingItems <MediaFileEntity> > GetMediaFilesAsync(this IMediaFileService mediaFileService, MediaItemSearchOptions searchOptions, PagingInfo pagingInfo) { return(Task.Run(() => mediaFileService.GetMediaFiles(searchOptions, pagingInfo))); }