private void AddUserActivityMetrics(Dictionary <Guid, EShotMetrics> eShotMetrics) { 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 status = (UserStatuses)groupComponents["Status"].AsInt32; var lastLogin = groupComponents.ToNullableUniversalTime("LastLogin"); if (status == UserStatuses.Active || status == UserStatuses.Inactive || status == UserStatuses.Locked || status == UserStatuses.Dormant) { //Only store if considered active eShotMetrics[candidateId] = new EShotMetrics { Status = status, LastLogin = lastLogin }; } } dateTime = dateTime.AddDays(-30); } }
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); } }