/// <summary> /// Prepare paged popular search term list model /// </summary> /// <param name="searchModel">Popular search term search model</param> /// <returns> /// A task that represents the asynchronous operation /// The task result contains the popular search term list model /// </returns> public virtual async Task<PopularSearchTermListModel> PreparePopularSearchTermListModelAsync(PopularSearchTermSearchModel searchModel) { if (searchModel == null) throw new ArgumentNullException(nameof(searchModel)); //get popular search terms var searchTermRecordLines = await _searchTermService.GetStatsAsync(pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize); //prepare list model var model = new PopularSearchTermListModel().PrepareToGrid(searchModel, searchTermRecordLines, () => { return searchTermRecordLines.Select(searchTerm => new PopularSearchTermModel { Keyword = searchTerm.Keyword, Count = searchTerm.Count }); }); return model; }