public async Task <RawDataResponse> GetRawData(DataExtractingQueueItem queueItem) { var accessToken = GetAccessToken(queueItem); var requestUrl = GetUrl(); TwitterDataResponse response; try { response = await SendRequestAsync <TwitterDataResponse>(requestUrl, HttpMethod.Get, (client, request) => { request.Headers.Authorization = new AuthenticationHeaderValue(AUTH_KEY, accessToken); request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue(GZIP_FLAG)); }); } catch (UnauthorizedAccessException) { RenewToken(accessToken); return(await GetRawData(queueItem)); } var result = Map(response); return(result); }
private bool GetNext(out DataExtractingQueueItem queueItem) { lock (_monitor) { queueItem = _dataService.GetNextFromQueue(); if (queueItem == null) { return(false); } _dataService.Acquire(queueItem); } return(true); }
private string GetAccessToken(DataExtractingQueueItem queueItem) { //omitted for brevity throw new NotImplementedException(); }