public async Task Define([Remainder] string word) { OxfordDictionaryClient client = new OxfordDictionaryClient("45278ea9", "c4dcdf7c03df65ac5791b67874d956ce"); var result = await client.SearchEntries(word, CancellationToken.None); if (result != null) { var senses = result.Results[0].LexicalEntries[0].Entries[0].Senses[0]; JEmbed emb = new JEmbed(); emb.Title = Func.ToTitleCase(word); emb.Description = Char.ToUpper(senses.Definitions[0][0]) + senses.Definitions[0].Substring(1) + "."; emb.ColorStripe = Constants.Colours.YORK_RED; if (senses.Examples != null) { emb.Fields.Add(new JEmbedField(x => { x.Header = "Examples:"; string text = ""; foreach (OxfordDictionariesAPI.Models.Example eg in senses.Examples) { text += $"\"{Char.ToUpper(eg.Text[0]) + eg.Text.Substring(1)}.\"\n"; } x.Text = text; })); } await Context.Channel.SendMessageAsync("", embed : emb.Build()); } else { await Context.Channel.SendMessageAsync($"Could not find definition for: {word}."); } }
public void TestExistingWord() { var searchResult = _client.SearchEntries("study", CancellationToken.None).Result; // result is present Assert.True(searchResult != null); // result is not empty Assert.True(searchResult.Results.Length > 0); // result match Result result = searchResult.Results.First(); Assert.True(result.Id == "study" && result.Word == "study"); // element in lexical Assert.True(result.LexicalEntries.Length == 2); Assert.True(result.LexicalEntries.First().LexicalCategory == "Noun"); // Sense LexicalEntry lexicalEntry = result.LexicalEntries.First(); Assert.True(lexicalEntry.Entries.Length == 1); Assert.True(lexicalEntry.Entries.First().Senses.Length == 5); Sense[] eachDefinition = lexicalEntry.Entries.First().Senses; Assert.True(eachDefinition.First().Definitions.First() == "the devotion of time and attention to gaining knowledge of an academic subject, especially by means of books"); }