public async Task <TaskResultModel> PendingForResult(int taskId, CancellationToken token = default) { var content = new RequestForResultTask() { clientKey = _userKey, taskId = taskId }; var request = new RestRequest("getTaskResult"); request.AddJsonBody(content); request.Method = Method.POST; var result = await _client.CreatePollingBuilder <TaskResultModel>(request).TriesLimit(_options.PendingCount) .WithTimeoutSeconds(5).ActivatePollingAsync( response => { if (response.Data.status == "ready" || response.Data.errorId != 0) { return(PollingAction.Break); } return(PollingAction.ContinuePolling); }); return(result.Data); }
public async Task <IRestResponse <TwoCaptchaResponse> > GetSolution(string id) { var request = new RestRequest("res.php") { Method = Method.POST }; request.AddQueryParameters(new Dictionary <string, string>() { ["id"] = id, ["key"] = _userKey, ["action"] = "get", ["json"] = "1" }); var result = await _client.CreatePollingBuilder <TwoCaptchaResponse>(request).TriesLimit(_options.PendingCount).ActivatePollingAsync( response => response.Data.request == "CAPCHA_NOT_READY" ? PollingAction.ContinuePolling : PollingAction.Break); return(result); }