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)); }
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}`"); }