public async Task Can_browse_with_query_and_pagination()
        {
            IMongoDatabase database  = MongoForTest.Provider.GetDatabase();
            var            repo      = new DataAssetMongoRepository(database);
            DataAsset      dataAsset = BuildDummyDataAsset();
            await repo.AddAsync(dataAsset);

            GetDataAssets query = new GetDataAssets();

            query.OnlyPublishable = true;
            query.Page            = 0;
            query.Results         = 10;
            await repo.BrowseAsync(query);
        }
        public async Task <PagedResult <DataAsset> > BrowseAsync(GetDataAssets query)
        {
            if (query is null)
            {
                return(PagedResult <DataAsset> .Empty);
            }

            var headers = DataAssets.AsQueryable();

            if (query.OnlyPublishable)
            {
                headers = headers.Where(c => c.State == DataAssetState.Published ||
                                        c.State == DataAssetState.UnderMaintenance);
            }

            return(await headers.OrderBy(h => h.Name).PaginateAsync(query));
        }