private void AddUserActivityMetrics(Dictionary <Guid, UserApplicationMetrics> userApplicationMetrics) { var dateTime = DateTime.UtcNow; while (dateTime > Constants.OldestValidDate) { var userActivityMetrics = _userMetricsRepository.GetUserActivityMetrics(dateTime.AddDays(-30), dateTime); foreach (var userActivityMetric in userActivityMetrics) { var groupComponents = userActivityMetric["_id"].AsBsonDocument; var candidateId = groupComponents["CandidateId"].AsGuid; var dateCreated = groupComponents["DateCreated"].ToUniversalTime(); var activated = userActivityMetric["Activated"].AsBoolean; var activateCodeExpiry = groupComponents["ActivateCodeExpiry"].ToNullableUniversalTime(); var activationDate = groupComponents.ToNullableUniversalTime("ActivationDate"); var lastLogin = groupComponents.ToNullableUniversalTime("LastLogin"); userApplicationMetrics[candidateId] = new UserApplicationMetrics { CandidateId = candidateId, DateCreated = dateCreated, Activated = activated, ActivateCodeExpiry = activateCodeExpiry, ActivationDate = activationDate, LastLogin = lastLogin }; } dateTime = dateTime.AddDays(-30); } }
private void AddApprenticeshipApplicationStatusCounts(Dictionary <Guid, UserApplicationMetrics> userApplicationMetrics) { var apprenticeshipApplicationsStatusCounts = _apprenticeshipMetricsRepository.GetApplicationStatusCounts(); foreach (var apprenticeshipApplicationsStatusCount in apprenticeshipApplicationsStatusCounts) { var candidateId = apprenticeshipApplicationsStatusCount["_id"].AsGuid; var savedApplicationCount = apprenticeshipApplicationsStatusCount["Saved"].AsInt32; var draftApplicationCount = apprenticeshipApplicationsStatusCount["Draft"].AsInt32; var submittedApplicationCount = apprenticeshipApplicationsStatusCount["Submitted"].AsInt32; var unsuccessfulApplicationCount = apprenticeshipApplicationsStatusCount["Unsuccessful"].AsInt32; var successfulApplicationCount = apprenticeshipApplicationsStatusCount["Successful"].AsInt32; var apprenticeshipApplicationMetrics = new CandidateApprenticeshipApplicationMetrics { Saved = savedApplicationCount, Draft = draftApplicationCount, Submitted = submittedApplicationCount, Unsuccessful = unsuccessfulApplicationCount, Successful = successfulApplicationCount, }; if (userApplicationMetrics.ContainsKey(candidateId)) { userApplicationMetrics[candidateId].CandidateApprenticeshipApplicationMetrics = apprenticeshipApplicationMetrics; } else { userApplicationMetrics[candidateId] = new UserApplicationMetrics { CandidateApprenticeshipApplicationMetrics = apprenticeshipApplicationMetrics }; } } }