Ejemplo n.º 1
0
        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);
        }