public override Task DoWork(CancellationToken cancellationToken) { _logger.LogInformation($"{DateTime.Now:hh:mm:ss} ReminderCron: Checking vaccination dates..."); using var scope = _serviceProvider.CreateScope(); var animalAggegatorRepo = scope.ServiceProvider.GetRequiredService <IAnimalAggregatorRepository>(); DateTime minDate = DateTime.Now.AddDays(-30); var animals = animalAggegatorRepo.GetBeforeVaccinationDate(minDate); if (animals.Count != 0) { var userManager = scope.ServiceProvider.GetRequiredService <UserManager <User> >(); string url = _configuration.GetSection("WebUrl").Value + "/animal/"; var sb = new StringBuilder(); sb.Append("Gyvūnai skiepiti ne ankščiau kaip prieš 30 dienų:<br>"); foreach (Animal animal in animals) { sb.Append(animal.VaccinationDate).Append(" ").Append(url + animal.Id).Append("<br>"); } var emails = userManager.Users.Select(user => user.Email).ToList(); _mailer.SendMassEmailAsync(emails, "Skiepų priminimas", sb.ToString()); animalAggegatorRepo.UpdateReminders(animals); } return(Task.CompletedTask); }