Exemplo n.º 1
0
        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
                });
            }
        }
Exemplo n.º 2
0
 public TutorFeedService(IQueryBus queryBus, ITutorSearch tutorSearch, int pageSize = 21)
 {
     _queryBus    = queryBus;
     _tutorSearch = tutorSearch;
     _pageSize    = pageSize;
 }