public Task <PagedResult <DepositApproval> > BrowseAsync(GetConsumerDepositApprovals query) { if (query is null) { return(Task.FromResult(PagedResult <DepositApproval> .Empty)); } var depositApprovalsBytes = _database.GetAll(); if (depositApprovalsBytes.Length == 0) { return(Task.FromResult(PagedResult <DepositApproval> .Empty)); } var depositApprovals = new DepositApproval[depositApprovalsBytes.Length]; for (var i = 0; i < depositApprovalsBytes.Length; i++) { depositApprovals[i] = Decode(depositApprovalsBytes[i]); } var filteredDepositApprovals = depositApprovals.AsEnumerable(); if (!(query.DataAssetId is null)) { filteredDepositApprovals = filteredDepositApprovals.Where(a => a.AssetId == query.DataAssetId); } if (!(query.Provider is null)) { filteredDepositApprovals = filteredDepositApprovals.Where(a => a.Provider == query.Provider); } if (query.OnlyPending) { filteredDepositApprovals = filteredDepositApprovals.Where(a => a.State == DepositApprovalState.Pending); } return(Task.FromResult(filteredDepositApprovals.OrderByDescending(a => a.Timestamp).Paginate(query))); }
public Task <PagedResult <DepositApproval> > BrowseAsync(GetConsumerDepositApprovals query) { if (query == null) { throw new ArgumentNullException(nameof(query)); } byte[][] depositApprovalsBytes = _database.GetAllValues().ToArray(); if (depositApprovalsBytes.Length == 0) { return(Task.FromResult(PagedResult <DepositApproval> .Empty)); } DepositApproval[] depositApprovals = new DepositApproval[depositApprovalsBytes.Length]; for (int i = 0; i < depositApprovalsBytes.Length; i++) { depositApprovals[i] = Decode(depositApprovalsBytes[i]); } IEnumerable <DepositApproval> filteredDepositApprovals = depositApprovals.AsEnumerable(); if (!(query.DataAssetId is null)) { filteredDepositApprovals = filteredDepositApprovals.Where(a => a.AssetId == query.DataAssetId); } if (!(query.Provider is null)) { filteredDepositApprovals = filteredDepositApprovals.Where(a => a.Provider == query.Provider); } if (query.OnlyPending) { filteredDepositApprovals = filteredDepositApprovals.Where(a => a.State == DepositApprovalState.Pending); } return(Task.FromResult(filteredDepositApprovals.OrderByDescending(a => a.Timestamp).ToArray().Paginate(query))); }