Example #1
0
        /// <summary>
        /// Interpret a received search result
        /// (active and passive results can be handled with this method)
        /// this will automatically add sources to already existing download
        /// queue entries, these will not be shown in the search results
        /// TODO make this an option
        /// </summary>
        /// <param name="result">the result to be interpreted</param>
        private void InterpretReceivedSearchResult(SearchResults.SearchResult result)
        {
            //Console.WriteLine("Adding Result to SearchResults");
            result.Hub = ResolveHub(result.HubAddress);
            if (result.Hub != null) //only add results for hubs still connected
            {
                if (result.HasTTH)
                {//only if a result has a tth it is considered a source for some queue entry
                    Queue.QueueEntry entry = download_queue.FindQueueEntryByTTH(result.TTH);
                    if (entry != null)
                    {//this searchresult is also a source for a queue entry
                        //,instead using of giving it back as result we add it to the source pool of the queue entry
                        entry.AddSource(new Queue.QueueEntry.Source(result.UserName, result.Filename, result.Hub));
                    } //no queue entry found for this one just hand it over to SearchResults
                    else
                    {
                        search_results.AddResult(result);
                    }
                }
                else
                {
                    search_results.AddResult(result);
                }
            }

            /*
             *      //Console.WriteLine("Adding Result to SearchResults");
             *      result.Hub = ResolveHub(result.HubAddress);
             *      search_results.AddResult(result);
             */
        }