private static void HandleVirtualJudgeProblems( QueryWorkerHistory worker, CrawlerSummaryData vjSummary, IReadOnlyDictionary <string, CrawlerSummaryData> summaries) { foreach (var problem in worker.SolvedList) { var(problemCrawlerName, problemId) = problem.Split('-'); if (summaries.TryGetValue(problemCrawlerName, out var problemCrawlerSummary)) { problemCrawlerSummary.Usernames.Add(new UsernameInCrawler { Username = worker.Username, FromCrawlerName = worker.CrawlerName, }); problemCrawlerSummary.SolvedSet.Add(problemId); } else { vjSummary.SolvedSet.Add(problem); } } }
private static void HandleVirtualJudgeSubmissions( QueryWorkerHistory worker, CrawlerSummaryData vjSummary, IReadOnlyDictionary <string, CrawlerSummaryData> summaries) { foreach (var(crawler, submissions) in worker.SubmissionsByCrawlerName) { if (summaries.TryGetValue(crawler, out var crawlerSummary)) { crawlerSummary.Submissions += submissions; crawlerSummary.Usernames.Add(new UsernameInCrawler { Username = worker.Username, FromCrawlerName = worker.CrawlerName == crawler ? null : worker.CrawlerName, }); } else { vjSummary.NotMergedSubmissions += submissions; } } }