using API.Schema.NotificationsContext; using API.Schema.NotificationsContext.NotificationConnectors; namespace API.Workers; public class SendNotificationsWorker(IEnumerable? dependsOn = null) : BaseWorkerWithContext(dependsOn), IPeriodic { public DateTime LastExecution { get; set; } = DateTime.UtcNow; public TimeSpan Interval { get; set; } = TimeSpan.FromMinutes(1); protected override BaseWorker[] DoWorkInternal() { NotificationConnector[] connectors = DbContext.NotificationConnectors.ToArray(); Notification[] notifications = DbContext.Notifications.Where(n => n.IsSent == false).ToArray(); foreach (Notification notification in notifications) { foreach (NotificationConnector connector in connectors) { connector.SendNotification(notification.Title, notification.Message); notification.IsSent = true; } } DbContext.Sync(); return []; } }