public async Task <WebResponseWithFacet <TutorCardDto> > GetAsync( string term, string course, [ProfileModelBinder(ProfileServiceQuery.Country)] UserProfile profile, int page, [FromServices] ITutorSearch tutorSearch, CancellationToken token, int pageSize = 20) { term = term ?? string.Empty; course = course ?? string.Empty; term = $"{term} {course}".Trim(); //TODO make it better if (string.IsNullOrWhiteSpace(term)) { _userManager.TryGetLongUserId(User, out var userId); var query = new TutorListQuery(userId, profile.Country, page, pageSize); var result = await _queryBus.QueryAsync(query, token); result.Result = result.Result.Select(s => { s.Image = _urlBuilder.BuildUserImageEndpoint(s.UserId, s.Image); return(s); }); return(new WebResponseWithFacet <TutorCardDto> { Result = result.Result, Count = result.Count, NextPageLink = Url.RouteUrl("TutorSearch", new { page = ++page }) }); } else { var query = new TutorListTabSearchQuery(term, profile.Country, page, pageSize); var result = await tutorSearch.SearchAsync(query, token); //result.Result = result.Result.Select(s => //{ // s.Image = _urlBuilder.BuildUserImageEndpoint(s.UserId, s.Image); // return s; //}); return(new WebResponseWithFacet <TutorCardDto> { Result = result.Result, NextPageLink = Url.RouteUrl("TutorSearch", new { page = ++page, term }), Count = result.Count }); } }
public TutorFeedService(IQueryBus queryBus, ITutorSearch tutorSearch, int pageSize = 21) { _queryBus = queryBus; _tutorSearch = tutorSearch; _pageSize = pageSize; }