Example #1
0
        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));
        }
Example #2
0
        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);
        }
Example #3
0
        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)));
        }
Example #6
0
 public Task <PagedResult <DepositApproval> > GetDepositApprovalsAsync(GetConsumerDepositApprovals query)
 => _depositApprovalService.BrowseAsync(query);
 public Task <PagedResult <DepositApproval> > BrowseAsync(GetConsumerDepositApprovals query)
 => _depositApprovalRepository.BrowseAsync(query);