public async Task DeleteTag(CommandContext context, [Description("Tag name")] string key) { await context.TriggerTypingAsync(); using (var db = new TagContext()) { var tag = db.Tags.FirstOrDefault(t => t.Key.ToLower() == key.ToLower()); if (tag == null) { var error = await context.RespondAsync($"`{key}` is not a valid tag. " + $"Type `{Program.AppSettings.CommandPrefix}tag list` for a list of tags."); await Task.Delay(5000) .ContinueWith(t => error.DeleteAsync()) .ContinueWith(t => context.Message.DeleteAsync()); return; } db.Remove(tag); await db.SaveChangesAsync(); } await context.RespondAsync($"Deleted tag `{key}`"); }
public async Task <bool> TryRemoveTagAsync(string tag) { if (_db == null) { _db = new TagContext(); } await _db.Database.EnsureCreatedAsync(); var toRemove = await _db.Tags.FirstOrDefaultAsync(x => x.Tag == tag); if (toRemove == null) { return(false); } _db.Remove(toRemove); await _db.SaveChangesAsync(); return(true); }