/// <summary> /// Realiza a bus /// </summary> /// <param name="channelId"></param> /// <param name="searchParans"></param> /// <param name="buildSummary"></param> /// <returns></returns> public ISearchResult Search(byte channelId, SearchParameter[] searchParameters, bool buildSummary) { StringBuilder words = new StringBuilder(); foreach (SearchParameter ap in searchParameters) { words.Append(string.Join(" ", ap.Values)).Append(" "); } _statisticsManager.IncrementCountWords(words.ToString()); var channel = _structRepository.GetChannel(channelId); if (channel != null) { string searchString = string.Empty; var result = new SearchResult(); result.Scheme = channel.Scheme; result.Elements = _searchManager.SearchInChannel(channel, _dataRepository.GetElements(), searchParameters, _dataRespositoryDictionary, ref searchString); if (buildSummary) { result.Summary = _summaryManager.BuildSummary(result.Elements, channel, searchString); } return(result); } else { throw new ArgumentException("channelId"); } }