private async static Task ScrapeRepositoryAsync( ScrapingTask scrapingTask, IGitHubClient gitHubClient, ITransaction tx, IUserRepoSearchActor userRepoSearchActor, IReliableConcurrentQueue <ScrapingTask> secondTaskQueue) { ScheduledRepository scheduledRepository = scrapingTask.ScheduledRepositories[0]; Result <Repository> result = await gitHubClient .ScrapeRepositoryAsync( authToken : scrapingTask.AuthToken, owner : scheduledRepository.Owner, name : scheduledRepository.Name); if (scrapingTask.ScheduledRepositories.Count > 1) { ScrapingTask nextScrapingTask = Serializer.DeepCopy(scrapingTask); nextScrapingTask.ScheduledRepositories = nextScrapingTask .ScheduledRepositories.Skip(1).ToList(); await secondTaskQueue.EnqueueAsync(tx, nextScrapingTask); } if (result.Success) { result.Data.IsNew = false; await userRepoSearchActor.SetRepositoryAsync(result.Data); } }