private void SendReminderEmails() { DateTime threeYearsAgo = VirtualDateTime.Now.AddYears(-3); DateTime threeYearsAgoMinusThirtyDays = threeYearsAgo.AddDays(30); DateTime threeYearsAgoMinusSevenDays = threeYearsAgo.AddDays(7); List <User> usersToSendReminders = dataRepository.GetAll <User>() .Where(u => u.LoginDate >= threeYearsAgoMinusThirtyDays && u.LoginDate < threeYearsAgoMinusThirtyDays.AddDays(1) || u.LoginDate >= threeYearsAgoMinusSevenDays && u.LoginDate < threeYearsAgoMinusSevenDays.AddDays(1)) .ToList(); foreach (User user in usersToSendReminders) { string daysRemaining = InThirtyDayRange(user, threeYearsAgoMinusThirtyDays) ? "30" : "7"; emailSendingService.SendAccountRetirementNotificationEmail(user.EmailAddress, user.Fullname, daysRemaining); } }