public async Task UpsertVacancyAnalyticSummaryAsync(VacancyAnalyticsSummary summary) { summary.Id = QueryViewType.VacancyAnalyticsSummary.GetIdValue(summary.VacancyReference.ToString()); summary.LastUpdated = _timeProvider.Now; await _queryStore.UpsertAsync(summary); }
public async Task <VacancyAnalyticsSummary> GetVacancyAnalyticEventSummaryAsync(long vacancyReference) { try { using (var conn = new SqlConnection(_vacancyAnalyticEventsDbConnString)) { using (var command = new SqlCommand(GetVacancyAnalyticEventsSqlSproc, conn)) { command.CommandType = CommandType.StoredProcedure; var inputParam = command.CreateParameter(); inputParam.ParameterName = "@VacancyReference"; inputParam.DbType = DbType.Int64; inputParam.Value = vacancyReference; inputParam.Direction = ParameterDirection.Input; command.Parameters.Add(inputParam); using (var reader = await RetryPolicy.ExecuteAsync(async context => { await conn.OpenAsync(); return(await command.ExecuteReaderAsync()); }, new Context(nameof(GetVacancyAnalyticEventSummaryAsync)))) { await reader.ReadAsync(); var summary = new VacancyAnalyticsSummary { VacancyReference = reader.GetInt64(VacancyReferenceColumnIndex), NoOfApprenticeshipSearches = reader.GetInt32(NoOfApprenticeshipSearchesColumnIndex), NoOfApprenticeshipSavedSearchAlerts = reader.GetInt32(NoOfApprenticeshipSavedSearchAlertsColumnIndex), NoOfApprenticeshipSaved = reader.GetInt32(NoOfApprenticeshipSavedColumnIndex), NoOfApprenticeshipDetailsViews = reader.GetInt32(NoOfApprenticeshipDetailsViewsColumnIndex), NoOfApprenticeshipApplicationsCreated = reader.GetInt32(NoOfApprenticeshipApplicationsCreatedColumnIndex), NoOfApprenticeshipApplicationsSubmitted = reader.GetInt32(NoOfApprenticeshipApplicationsSubmittedColumnIndex) }; return(summary); } } } } catch (Exception ex) { _logger.LogError(ex, "Error retrieving vacancy events from the Vacancy Analytic Events DB."); throw; } }
public static VacancyAnalyticsSummaryViewModel MapToVacancyAnalyticsSummaryViewModel(VacancyAnalyticsSummary vacancyAnalyticsSummary, DateTime liveDate) { var summaryViewModel = new VacancyAnalyticsSummaryViewModel { LiveDate = liveDate, LastUpdatedDate = vacancyAnalyticsSummary.LastUpdated == DateTime.MinValue ? DateTime.UtcNow : vacancyAnalyticsSummary.LastUpdated, NoOfTimesAppearedInSearch = vacancyAnalyticsSummary.NoOfApprenticeshipSearches, NoOfTimesAppearedInSearchOverLastSevenDays = vacancyAnalyticsSummary.NoOfApprenticeshipSearchesSevenDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipSearchesSixDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipSearchesFiveDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipSearchesFourDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipSearchesThreeDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipSearchesTwoDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipSearchesOneDayAgo, NoOfApplicationsStarted = vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsCreated, NoOfApplicationsStartedOverLastSevenDays = vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsCreatedSevenDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsCreatedSixDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsCreatedFiveDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsCreatedFourDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsCreatedThreeDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsCreatedTwoDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsCreatedOneDayAgo, NoOfApplicationsSubmitted = vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsSubmitted, NoOfApplicationsSubmittedOverLastSevenDays = vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsSubmittedSevenDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsSubmittedSixDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsSubmittedFiveDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsSubmittedFourDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsSubmittedThreeDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsSubmittedTwoDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipApplicationsSubmittedOneDayAgo, NoOfTimesViewed = vacancyAnalyticsSummary.NoOfApprenticeshipDetailsViews, NoOfTimesViewedOverLastSevenDays = vacancyAnalyticsSummary.NoOfApprenticeshipDetailsViewsSevenDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipDetailsViewsSixDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipDetailsViewsFiveDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipDetailsViewsFourDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipDetailsViewsThreeDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipDetailsViewsTwoDaysAgo + vacancyAnalyticsSummary.NoOfApprenticeshipDetailsViewsOneDayAgo, }; return(summaryViewModel); }