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); } } } } }
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(); }