Beispiel #1
0
        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}`");
        }
Beispiel #2
0
        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);
        }