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(); } }
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(); } }
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 bool UserAlreadyExists(string name) { using (var db = new DiscordBotEntities()) { var userCheck = db.UserStatus.Where(x => x.User == name).SingleOrDefault(); if (userCheck != null) { return(true); } else { return(false); } } }
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); } } }
public async Task HandleMention(SocketMessage e) { SocketUserMessage msg = e as SocketUserMessage; if (msg == null) { return; } CommandContext context = new CommandContext(_client, msg); if (IsBot(context)) { return; } var users = msg.MentionedUsers; if (users.Count > 0) { foreach (var user in users) { using (var db = new DiscordBotEntities()) { var status = db.UserStatus.Where(x => x.User == user.Mention).Select(x => x.Status).SingleOrDefault(); if (status != null) { if (!status.ToLower().Equals("none")) { var message = string.Format("{0} is currently {1}", user.Username, status); await context.Channel.SendMessageAsync(message); } } } } } }
public Repository() { context = new DiscordBotEntities(); }