public async Task ReBuildDashboardAsync(string employerAccountId) { var vacancySummariesTask = _vacancyQuery.GetVacanciesByEmployerAccountAsync <VacancySummary>(employerAccountId); var applicationReviewStatusCountsTask = _applicationReviewQuery.GetStatusCountsForEmployerAsync(employerAccountId); await Task.WhenAll(vacancySummariesTask, applicationReviewStatusCountsTask); var vacancySummaries = vacancySummariesTask.Result.ToList(); var applicationReviewStatusCounts = applicationReviewStatusCountsTask.Result; foreach (var summary in vacancySummaries) { if (summary.VacancyReference.HasValue) { summary.AllApplicationsCount = applicationReviewStatusCounts .Where(r => r.Id.VacancyReference == summary.VacancyReference.Value) .Sum(r => r.Count); summary.NewApplicationsCount = applicationReviewStatusCounts .Where(r => r.Id.VacancyReference == summary.VacancyReference.Value && r.Id.Status == ApplicationReviewStatus.New) .Sum(r => r.Count); } await UpdateWithTrainingProgrammeInfo(summary); } await _queryStoreWriter.UpdateEmployerDashboardAsync(employerAccountId, vacancySummaries.OrderBy(v => v.CreatedDate)); _logger.LogDebug("Update employer dashboard with {count} summary records for account: {employerAccountId}", vacancySummaries.Count, employerAccountId); }
public async Task ReBuildDashboardAsync(string employerAccountId) { var vacancySummaries = await _vacancySummariesQuery.GetEmployerOwnedVacancySummariesByEmployerAccountAsync(employerAccountId); foreach (var summary in vacancySummaries) { await UpdateWithTrainingProgrammeInfo(summary); } await _queryStoreWriter.UpdateEmployerDashboardAsync(employerAccountId, vacancySummaries.OrderBy(v => v.CreatedDate)); _logger.LogDebug("Update employer dashboard with {count} summary records for account: {employerAccountId}", vacancySummaries.Count, employerAccountId); }