public async Task SearchTags([Name("Search For"), Summary("Your search query"), Remainder] string tagName) { var currentTags = _service.GetTags(Context.Guild.Id); var levenTags = currentTags.Where(x => TagHelper.CalcLevenshteinDistance(tagName.ToLower(), x.TagName) < 5); var containsTags = currentTags.Where(x => x.TagName.Contains(tagName.ToLower())); var totalTags = levenTags.Union(containsTags); await _message.SendMessageAsync(Context, $"{(totalTags.Any() ? "Tags found;\n" + $"{string.Join(", ", totalTags.Select(x => $"{x.TagName}"))}" : "No tags found")}"); }
public async Task GetTag([Name("Name of tag"), Summary("The name of the tag you want to fetch"), Remainder] string tagName) { var currentTags = _service.GetTags(Context.Guild.Id); var targetTag = currentTags.FirstOrDefault(x => x.TagName == tagName.ToLower()); if (targetTag is null) { var levenTags = currentTags.Where(x => TagHelper.CalcLevenshteinDistance(tagName.ToLower(), x.TagName) < 5); var containsTags = currentTags.Where(x => x.TagName.Contains(tagName.ToLower())); var totalTags = levenTags.Union(containsTags); await _message.SendMessageAsync(Context, $"{(totalTags.Any() ? "Tag not found did you mean?\n" + $"{string.Join(", ", totalTags.Select(x => $"{x.TagName}"))}" : "No tags found")}"); return; } await _message.SendMessageAsync(Context, targetTag.TagValue); }