/
d.alekseev
/
SmartMenuBot
Обзор
Документация
Войти
/
d.alekseev
/
SmartMenuBot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ConsoleBot/BackgroundTasks/DeadlineBackgroundTask.cs
33 строки
1 KB
d.alekseev
feat: нотификации и фоновые задачи доставки уведомлений
26 фев 2026, 10:55
26 фев 2026, 10:55
4338916
Код
Авторство
О чём код?
using SmartMenuBot.Core.DataAccess; using SmartMenuBot.Core.Services.Interfaces; namespace SmartMenuBot.BackgroundTasks { public class DeadlineBackgroundTask( INotificationService notificationService, IUserRepository userRepository, IToDoRepository toDoRepository) : BackgroundTask(TimeSpan.FromHours(1), nameof(DeadlineBackgroundTask)) { protected override async Task Execute(CancellationToken ct) { var users = await userRepository.GetUsers(ct); var from = DateTime.UtcNow.AddDays(-1).Date; var to = DateTime.UtcNow.Date; foreach (var user in users) { var tasks = await toDoRepository.GetActiveWithDeadline(user.UserId, from, to, ct); foreach (var task in tasks) { await notificationService.ScheduleNotification( user.UserId, $"Dealine_{task.Id}", $"Вы пропустили дедлайн по задаче {task.Name}", DateTime.UtcNow, ct); } } } } }