Esempio n. 1
0
        public async Task Run()
        {
            var notificationDates = dateCalculator.GetWeeklyNotificationDates();

            var requests = await requestRepository.GetRequests(notificationDates.First(), notificationDates.Last());

            var users = await userRepository.GetUsers();

            foreach (var userId in requests.Where(r => r.Status.IsRequested()).Select(r => r.UserId).Distinct())
            {
                var user = users.Single(u => u.UserId == userId);

                await this.emailRepository.Send(
                    new EmailTemplates.WeeklyNotification(requests, user, notificationDates));
            }
        }