public virtual IActionResult PopularSearchTermsReport(PopularSearchTermSearchModel searchModel) { //prepare model PopularSearchTermListModel model = _commonModelFactory.PreparePopularSearchTermListModel(searchModel); return(Json(model)); }
/// <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; }
/// <summary> /// Prepare paged popular search term list model /// </summary> /// <param name="searchModel">Popular search term search model</param> /// <returns>Popular search term list model</returns> public virtual PopularSearchTermListModel PreparePopularSearchTermListModel(PopularSearchTermSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } //get popular search terms var searchTermRecordLines = _searchTermService.GetStats(pageIndex: searchModel.Page - 1, pageSize: searchModel.PageSize); //prepare list model var model = new PopularSearchTermListModel { //fill in model values from the entity Data = searchTermRecordLines.Select(searchTerm => new PopularSearchTermModel { Keyword = searchTerm.Keyword, Count = searchTerm.Count }), Total = searchTermRecordLines.TotalCount }; return(model); }