Exemplo n.º 1
0
        public async void SendReminder(object sender, System.Timers.ElapsedEventArgs e)
        {
            TimeZoneInfo cet = CreateTimeZone();
            DateTime     now = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, cet);

            try
            {
                foreach (Raid raid in _raidService.ListRaids())
                {
                    foreach (RaidReminder reminder in raid.Reminders.Values)
                    {
                        if (!reminder.Sent && now >= raid.StartTime.AddHours(reminder.HoursBeforeRaid * -1))
                        {
                            string message = $"{raid.Title}: " + reminder.Message;
                            if (reminder.Type == RaidReminder.ReminderType.User)
                            {
                                await _raidService.SendMessageToEveryRaidMember(raid, message);
                            }
                            else
                            {
                                SocketTextChannel channel = (SocketTextChannel)_client.GetChannel(reminder.ChannelId);
                                await channel.SendMessageAsync(message);
                            }
                            reminder.Sent = true;
                            _raidService.SaveRaids();
                        }
                    }
                }
            }
            catch { }
        }
Exemplo n.º 2
0
        public async void SendReminder(object sender, System.Timers.ElapsedEventArgs e)
        {
            TimeZoneInfo cet = CreateTimeZone();
            DateTime     now = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, cet);

            try
            {
                foreach (var raid in _raidService.ListRaids())
                {
                    if (raid.StartTime.CompareTo(now.AddMinutes(REMINDER_INTERVAL)) <= 0 && !raid.ReminderSent)
                    {
                        string message = $"The raid \"{raid.Title}\" starts in {REMINDER_INTERVAL} minutes.";
                        await _raidService.SendMessageToEveryRaidMember(raid, message);

                        raid.ReminderSent = true;
                        _raidService.SaveRaids();
                    }
                }
            }
            catch { }
        }