diff --git a/TeachersTimetable/Services/CommandsService.cs b/TeachersTimetable/Services/CommandsService.cs index aac18de..75d256d 100644 --- a/TeachersTimetable/Services/CommandsService.cs +++ b/TeachersTimetable/Services/CommandsService.cs @@ -1,4 +1,5 @@ -using Telegram.BotAPI.AvailableMethods; +using MongoDB.Driver; +using Telegram.BotAPI.AvailableMethods; using Telegram.BotAPI.AvailableTypes; using TelegramBot_Timetable_Core; using TelegramBot_Timetable_Core.Models; @@ -120,8 +121,26 @@ private async void OnMessageReceive(Message message) { var lowerMessageText = messageText.ToLower(); - // if (lowerMessageText.Contains("/notify")) - // await this._parserService.SendNewDayTimetables(null, true); + if (lowerMessageText.Contains("/timetablenotify")) + { + var notificationUsers = new List(); + notificationUsers.AddRange( + (await this._mongoService.Database.GetCollection("Users") + .FindAsync(u => u.Teacher != null && u.Notifications)).ToList()); + + if (notificationUsers.Count == 0) return; + + _ = Task.Run(() => + { + foreach (var user in notificationUsers) + { + _ = this._distributionService.SendDayTimetable(user); + } + + this._botService.SendAdminMessageAsync(new SendMessageArgs(0, + $"{notificationUsers.Count} notifications sent")); + }); + } } await this._interfaceService.NotifyAllUsers(message); diff --git a/TeachersTimetable/Services/ParseService.cs b/TeachersTimetable/Services/ParseService.cs index 5498984..ff92ee3 100644 --- a/TeachersTimetable/Services/ParseService.cs +++ b/TeachersTimetable/Services/ParseService.cs @@ -69,7 +69,7 @@ public ParseService(IMongoService mongoService, IBotService botService, IFirefox }; } - public async Task ParseDay() + private async Task ParseDay() { Console.WriteLine("Start day parse"); @@ -227,7 +227,7 @@ public async Task ParseDay() }); } - public async Task ParseWeek() + private async Task ParseWeek() { Console.WriteLine("Start week parse");