/// <summary>
        /// Take ISearchResults from examine, create title and body summary, and update SearchResultsCollection
        /// </summary>
        /// <param name="ResultsCollection">
        /// The Results Collection.
        /// </param>
        /// <param name="SearchResults">
        /// The search Results.
        /// </param>
        /// <param name="summariser">
        /// The summarizer.
        /// </param>
        /// <param name="PageNumber">
        /// The page Number.
        /// </param>
        /// <param name="pageLength">
        /// The page Length.
        /// </param>
        /// <param name="Stopwatch">
        /// The stopwatch.
        /// </param>
        private static SearchResultsCollection UpdateWithResults(SearchResultsCollection ResultsCollection, ISearchResults SearchResults, int PageNumber = 0, Stopwatch Stopwatch = null)
        {
            int pageLength = ResultsCollection.ConfigResultsPerPage;

            if (ResultsCollection.AllResults == null || !ResultsCollection.AllResults.Any())
            {
                //Initial Search Population - Default behavior

                //Check for empty results
                var numResults = SearchResults.TotalItemCount;
                if (numResults < 1)
                {
                    ResultsCollection.IsError   = true;
                    ResultsCollection.ErrorCode = "NoResults";
                    ResultsCollection.ErrorMsg  = "Your search returned no results";

                    return(ResultsCollection);
                }
                else if (ResultsCollection.ErrorCode == "NoResults")
                {
                    //Clear existing error, if present
                    ResultsCollection.IsError   = false;
                    ResultsCollection.ErrorCode = "";
                    ResultsCollection.ErrorMsg  = "";
                }

                //Convert from Examine Results to FullText Results
                var convertedResults = ConvertSearchResultsToFullTextResults(SearchResults, ResultsCollection.Summarizer, PageNumber).ToList();
                ResultsCollection.AllResults = convertedResults;
            }
            else
            {
                //Appending Results to existing collection

                var convertedResults = ResultsCollection.AllResults.ToList();
                //Convert from Examine Results to FullText Results
                convertedResults.AddRange(ConvertSearchResultsToFullTextResults(SearchResults, ResultsCollection.Summarizer, PageNumber).ToList());

                //Remove duplicates
                ResultsCollection.AllResults = convertedResults.DistinctBy(N => N.NodeId);
            }

            //End Stopwatch
            if (Stopwatch != null)
            {
                Stopwatch.Stop();
                double millisecs = Stopwatch.ElapsedMilliseconds;
                var    numSecs   = Math.Round((millisecs / 1000), 3);
                ResultsCollection.TimeTakenSeconds = numSecs;
            }

            //Handle Paging
            var allResults   = ResultsCollection.AllResults.ToList();
            var totalResults = allResults.Count();

            ResultsCollection.TotalResults = totalResults;
            var numPages = totalResults % pageLength == 0 ? totalResults / pageLength : totalResults / pageLength + 1;

            ResultsCollection.NumOfPages = numPages;

            var allPages = new List <SearchResultPage>();

            //divide results into pages
            if (pageLength > 0)
            {
                var toSkip = 0;
                for (int i = 0; i < numPages; i++)
                {
                    var page = new SearchResultPage();

                    page.PageNum       = i + 1;
                    toSkip             = i * pageLength;
                    page.Results       = allResults.Skip(toSkip).Take(pageLength);
                    page.ResultsOnPage = page.Results.Count();
                    page.FirstResult   = toSkip + 1;

                    var lastResult = toSkip + pageLength;
                    if (lastResult > totalResults)
                    {
                        lastResult = totalResults;
                    }
                    page.LastResult = lastResult;

                    allPages.Add(page);
                }
            }
            else
            {
                ResultsCollection.IsError   = true;
                ResultsCollection.ErrorCode = "NoPage";
                ResultsCollection.ErrorMsg  = "Pagination incorrectly set up, no results on page" + PageNumber;

                return(ResultsCollection);
            }

            ResultsCollection.Pages = allPages;

            return(ResultsCollection);
        }