public async Task <bool> SendReminders() { try { var remindersToSend = _unitOfWork.Reminders.GetAllRemindersActive(); foreach (var reminder in remindersToSend) { if ((DateTime.Now.Date + reminder.RemindTimeToSend) <= DateTime.Now && reminder.RemindedAt.Date < DateTime.Now.Date) //considerar enviar { if (reminder.RemindedAt == new DateTime()) { await _telegramBotApp.sendMessageAsync(reminder.TelegramUser.TelegramChatId, reminder.TextMessage); } else if (reminder.RemindedAt.AddMinutes(-5) < DateTime.Now) { await _telegramBotApp.sendMessageAsync(reminder.TelegramUser.TelegramChatId, reminder.TextMessage); } reminder.SetReminded(); _unitOfWork.Reminders.Update(reminder); } } _unitOfWork.Complete(); return(true); } catch (Exception e) { e.LogExceptionToConsole(); return(false); } }
public async Task <bool> SendRiverLevel() { try { string riverLevelHour = "", riverLevel = ""; RiverLevelAlertaBlu(out riverLevel, out riverLevelHour); if (string.IsNullOrEmpty(riverLevel) || string.IsNullOrEmpty(riverLevelHour)) { //As vezes acontece de o site da prefeitura estar com algum dado vazio e não pode ser enviado nesses casos return(true); } if (lastRiverLevel == riverLevel + riverLevelHour) { //Se o nível e o horário da medição continuam o mesmo, não deve enviar o lembrete return(true); } lastRiverLevel = riverLevel + riverLevelHour; foreach (var user in _unitOfWork.TelegramUsers.GetAllUsersWithSendRiverActivate()) { await _telegramBotApp.sendMessageAsync(user.TelegramChatId, $"O nível do rio está {riverLevel} às {riverLevelHour}"); } return(true); } catch (Exception e) { e.LogExceptionToConsole(); return(false); } }