public override void InternalExecute()
        {
            //Find all users that have not been active
            if (IsEnabled)
            {
                lock (_lock)
                {
                    //User that have been warned and the warn date is 1 month old should be deleted
                    int outofDateMonths = Configuration.GetInt("accountDeleteAge");
                    int maxCount        = 10000;

                    foreach (User user in  UserHealth.GetInactiveUsers(Configuration.GetInt("accountAge")))
                    {
                        maxCount--;
                        if (maxCount <= 0)
                        {
                            break;
                        }

                        var lastLoginData = UserHealth.GetLastLoginDetails(user.ContentId);

                        int      waringCount = lastLoginData.EmailCountSent;
                        DateTime lastSent    = lastLoginData.FirstEmailSentAt ?? DateTime.Now;

                        if (waringCount == 0 || DateTime.Now > lastSent.AddMonths(outofDateMonths * waringCount))
                        {
                            UserAccountEncouragement(user);

                            lastLoginData.EmailCountSent   = ++waringCount;
                            lastLoginData.FirstEmailSentAt = lastSent;

                            UserHealth.CreateUpdateLastLoginDetails(lastLoginData);
                        }
                    }
                }
            }
        }
예제 #2
0
        private void HideUsersOnClick(object sender, EventArgs eventArgs)
        {
            IUserHealth userHealth = Injector.Get <IUserHealth>();

            EnumerateUsers(user =>
            {
                if (user.ContentId != null)
                {
                    var lastLoginData = userHealth.GetLastLoginDetails(user.ContentId);

                    lastLoginData.IgnoredUser = true;

                    userHealth.CreateUpdateLastLoginDetails(lastLoginData);

                    Telligent.Evolution.Extensibility.Caching.Version1.CacheService.Remove(LastLoginDetails.CacheKey(user.ContentId), Telligent.Evolution.Extensibility.Caching.Version1.CacheScope.All);
                }
            });

            //Set up the grid
            SetConfigurationPropertyValue(null);
            _repeater.DataSource = _configurationDataSource;
            _repeater.DataBind();
        }