Ejemplo n.º 1
0
        public async Task <ISearcherResult> SearchAsync(string searchTerm)
        {
            await Task.Run(() =>
            {
                OrdEntry foundWord = null;

                foreach (var word in Resources.RuntimeData.FolketsOrdbok.Words)
                {
                    if (word.Grundform == searchTerm)
                    {
                        foundWord = word;
                    }
                }

                LastResult = new FolketsOrdbokResult(searchTerm, foundWord);
            });

            return(LastResult);
        }
Ejemplo n.º 2
0
        private async Task SearchAsync(CommandContext ctx, ISearcherAsync searcher)
        {
            string searchTerm = ctx.RawArgumentString;

            if (searchTerm == null)
            {
                await ctx.RespondAsync("Du måste ange ett sökord.");

                return;
            }

            searchTerm = searchTerm.TrimStart();

            // Show typing response whilst searching.
            await ctx.TriggerTypingAsync();

            ISearcherResult result = null;

            try
            {
                result = await searcher.SearchAsync(searchTerm);
            }
            catch (Exception ex)
            {
                await ctx.RespondAsync(ex);
            }

            if (result != null)
            {
                result.GetEmbedsFromSearchResult(ctx.Client).ForEach(async e =>
                {
                    try
                    {
                        await ctx.RespondAsync(embed: e);
                    }
                    catch (Exception ex)
                    {
                        ctx.Client.DebugLogger.LogMessage(LogLevel.Error, "Command", ex.Message, DateTime.Now);
                        await ctx.RespondAsync(ex);
                    }
                });
            }
        }