public static async Task ExecuteSearchFight(IList <string> terms)
        {
            IList <Search> searchData = await _searchManager.GetSearchResults(terms);

            IEnumerable <SearchEngineChampion> searchEngineWinners = _champManager.GetSearchEngineWinners(searchData);
            SearchEngineChampion grandChampion = _champManager.GetGrandWinner(searchData);

            Reports.AddRange(_reportManager.GetSearchResultsReport(searchData));
            Reports.AddRange(_reportManager.GetWinnersReport(searchEngineWinners));
            Reports.Add(_reportManager.GetGrandWinnerReport(grandChampion));
        }
        public string GetGrandWinnerReport(SearchEngineChampion grandChampion)
        {
            if (grandChampion == null)
            {
                throw new ArgumentException("The specified parameter is invalid", nameof(grandChampion));
            }

            StringBuilder grandWinnerBuilder = new StringBuilder();

            grandWinnerBuilder.Append(TOTAL_WINNER_TITLE);
            grandWinnerBuilder.Append(grandChampion.Term);
            return(grandWinnerBuilder.ToString());
        }