예제 #1
0
        public async Task EditTag(CommandContext context, [Description("Tag name")] string key, [Description("Tag value"), RemainingText] string value)
        {
            if (String.IsNullOrEmpty(value))
            {
                throw new ArgumentException();
            }

            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;
                }

                tag.Value = value;
                db.Update(tag);
                await db.SaveChangesAsync();
            }

            await context.RespondAsync($"Edited tag `{key}`");
        }
        public async Task <IActionResult> Edit(int tenantId, int id, [Bind("Id,Value")] Tag tag)
        {
            if (id != tag.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    tag.TenantId = tenantId;
                    _context.Update(tag);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TagExists(tenantId, tag.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(tag));
        }
예제 #3
0
        public async Task RenameTag(CommandContext context, [Description("Old tag name")] string oldKey, [Description("New tag name")] string newKey)
        {
            await context.TriggerTypingAsync();

            using (var db = new TagContext())
            {
                var tag = db.Tags.FirstOrDefault(t => t.Key.ToLower() == oldKey.ToLower());

                if (tag == null)
                {
                    var error = await context.RespondAsync($"`{oldKey}` 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;
                }

                tag.Key = newKey;
                db.Update(tag);
                await db.SaveChangesAsync();
            }

            await context.RespondAsync($"Renamed tag `{oldKey}` to `{newKey}`");
        }