void RetryBatch(List <RequestAssetInBatch> batchedRequests)
        {
            var newHandler = new BatchAssetsRequestHandler(requestController, false);

            for (int i = 0; i < batchedRequests.Count; i++)
            {
                newHandler.AddRequest(batchedRequests[i]);
            }

            requestController.requestScheduler.EnqueueRequest(newHandler);
            newHandler.schedulableHandler.SetReadyToBeScheduled(newHandler);
        }
示例#2
0
        public RequestBase <AssetResponse> FetchNFT(string contractAddress, string tokenId)
        {
            if (cacheAssetResponses.TryGetValue(RequestAssetInBatch.GetId(contractAddress, tokenId), out RequestBase <AssetResponse> request))
            {
                return(request);
            }

            var newRequest = new RequestAssetInBatch(contractAddress, tokenId);

            AddToCache(newRequest);

            newRequest.OnFail += OnRequestFailed;

            if (openBatchAssetsRequestHandler == null || !openBatchAssetsRequestHandler.isOpen)
            {
                openBatchAssetsRequestHandler = new BatchAssetsRequestHandler(this);
                requestScheduler.EnqueueRequest(openBatchAssetsRequestHandler);
            }

            openBatchAssetsRequestHandler.AddRequest(newRequest);

            return(newRequest);
        }