コード例 #1
0
        public async Task <PagedResult <Consumer> > BrowseAsync(GetConsumers query)
        {
            if (query is null)
            {
                return(PagedResult <Consumer> .Empty);
            }

            var consumers = Consumers.AsQueryable();

            if (!(query.AssetId is null))
            {
                consumers = consumers.Where(c => c.DataRequest.DataAssetId == query.AssetId);
            }

            if (!(query.Address is null))
            {
                consumers = consumers.Where(c => c.DataRequest.Consumer == query.Address);
            }

            if (query.OnlyWithAvailableUnits)
            {
                consumers = consumers.Where(c => c.HasAvailableUnits == query.OnlyWithAvailableUnits);
            }

            return(await consumers.OrderByDescending(c => c.VerificationTimestamp).PaginateAsync(query));
        }