public static async Task HandleRemindersAsync(DiscordSocketClient _client)
        {
            using (var db = new DiscordBotEntities())
            {
                var dtNow            = DateTime.Now;
                var elapsedReminders = db.Reminders.Where(x => x.ReminderDate < dtNow && (x.Status == 10 || x.Status == 20)).ToList();

                if (elapsedReminders.Any())
                {
                    foreach (var reminder in elapsedReminders)
                    {
                        if (reminder.Status == 10)
                        {
                            reminder.Status = 100;
                        }
                        else if (reminder.Status == 20)
                        {
                            reminder.ReminderDate = reminder.ReminderDate.AddDays(1);
                        }

                        await SendReminder(reminder, _client);
                    }
                }
                db.SaveChanges();
            }
        }
Exemple #2
0
 private void UpdateStatus(string name, string status)
 {
     using (var db = new DiscordBotEntities())
     {
         var userStatus = db.UserStatus.Where(x => x.User == name).SingleOrDefault();
         userStatus.Status = status;
         db.SaveChanges();
     }
 }
Exemple #3
0
        private void CreateUser(string name, string status)
        {
            using (var db = new DiscordBotEntities())
            {
                var userStatus = new UserStatu();
                userStatus.User   = name;
                userStatus.Status = status;

                db.UserStatus.Add(userStatus);
                db.SaveChanges();
            }
        }
        private void SetReminder(string user, string channel, DateTime time, string message)
        {
            using (var database = new DiscordBotEntities())
            {
                var reminder = new Reminder
                {
                    Username     = user,
                    Message      = message,
                    ReminderDate = time,
                    Channel      = channel,
                    Status       = 10
                };

                database.Reminders.Add(reminder);

                try
                {
                    database.SaveChanges();
                }
                catch (DbEntityValidationException ex)
                {
                    // Retrieve the error messages as a list of strings.
                    var errorMessages = ex.EntityValidationErrors
                                        .SelectMany(x => x.ValidationErrors)
                                        .Select(x => x.ErrorMessage);

                    // Join the list to a single string.
                    var fullErrorMessage = string.Join("; ", errorMessages);

                    // Combine the original exception message with the new one.
                    var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage);

                    // Throw a new DbEntityValidationException with the improved exception message.
                    throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors);
                }
            }
        }