public async Task Search(ConsumeContext <ISearchMetadataCommand> context, SearchEngineType where) { var md5 = context.Message.Md5; _logger.LogTrace("Searching for {Md5} in {SearchEngine}", md5, where); var sw = new Stopwatch(); sw.Start(); var searchResults = await _arachneSearchService.Search(new Image(md5), where); sw.Stop(); LogSearchResults(@where, searchResults, md5, sw); await SendUpdateMetadataCommand(context, searchResults); await _meidoReporter.ReportSearchResultsToHeadMaid(context, searchResults); }
private void LogSearchResults(SearchEngineType @where, SearchResult searchResults, string md5, Stopwatch sw) { switch (searchResults) { case Metadata metadata: _logger.LogInformation( "Search result {Md5} in {SearchEngine}: {IsFound} ({Ms} ms)", md5, @where, metadata.IsFound.ToString(), sw.ElapsedMilliseconds); break; case SearchError error: _logger.LogWarning( "Search result {Md5} in {SearchEngine}: {IsFound} {SearchErrorMessage} ({Ms} ms)", md5, @where, "SearchError", error.Error, sw.ElapsedMilliseconds); break; } }