public async Task <PagedResult <DepositApproval> > BrowseAsync(GetConsumerDepositApprovals query) { if (query is null) { return(PagedResult <DepositApproval> .Empty); } var depositApprovals = DepositApprovals.AsQueryable(); if (!(query.DataAssetId is null)) { depositApprovals = depositApprovals.Where(a => a.AssetId == query.DataAssetId); } if (!(query.Provider is null)) { depositApprovals = depositApprovals.Where(a => a.Provider == query.Provider); } if (query.OnlyPending) { depositApprovals = depositApprovals.Where(a => a.State == DepositApprovalState.Pending); } return(await depositApprovals.OrderByDescending(a => a.Timestamp).PaginateAsync(query)); }
public async Task get_deposit_approvals_should_return_approvals() { var query = new GetConsumerDepositApprovals(); var approval = new DepositApproval(Keccak.Zero, TestItem.KeccakA, "test", "kyc", TestItem.AddressA, TestItem.AddressB, 1); _consumerService.GetDepositApprovalsAsync(query) .Returns(PagedResult <DepositApproval> .Create(new[] { approval }, 1, 1, 1, 1)); var result = await _rpc.ndm_getConsumerDepositApprovals(query); await _consumerService.Received().GetDepositApprovalsAsync(query); result.Data.Should().NotBeNull(); result.Data.Items.Should().NotBeNull(); result.Data.Items.Should().ContainSingle(); result.Data.Page.Should().Be(1); result.Data.Results.Should().Be(1); result.Data.TotalPages.Should().Be(1); result.Data.TotalResults.Should().Be(1); result.Data.IsEmpty.Should().BeFalse(); var rpcApproval = result.Data.Items.Single(); rpcApproval.Id.Should().Be(approval.Id); rpcApproval.AssetId.Should().Be(approval.AssetId); rpcApproval.AssetName.Should().Be(approval.AssetName); rpcApproval.Kyc.Should().Be(approval.Kyc); rpcApproval.Consumer.Should().Be(approval.Consumer); rpcApproval.Provider.Should().Be(approval.Provider); rpcApproval.Timestamp.Should().Be(approval.Timestamp); }
public async Task Can_browse_with_query_and_pagination() { IMongoDatabase database = MongoForTest.TempDb.GetDatabase(); var repo = new ConsumerDepositApprovalMongoRepository(database); DepositApproval depositApproval = BuildDummyDepositApproval(); await repo.AddAsync(depositApproval); GetConsumerDepositApprovals query = new GetConsumerDepositApprovals(); query.Provider = depositApproval.Provider; query.OnlyPending = true; query.DataAssetId = depositApproval.AssetId; query.Page = 0; query.Results = 10; await repo.BrowseAsync(query); }
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))); }
public Task <PagedResult <DepositApproval> > GetDepositApprovalsAsync(GetConsumerDepositApprovals query) => _depositApprovalService.BrowseAsync(query);
public Task <PagedResult <DepositApproval> > BrowseAsync(GetConsumerDepositApprovals query) => _depositApprovalRepository.BrowseAsync(query);