Example #1
0
        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);
            }
        }