Пример #1
0
        public async Task TutorListQuery_Ok(long userId, string country, int page)
        {
            var query  = new TutorListQuery(userId, country, page);
            var result = await _fixture.QueryBus.QueryAsync(query, default);

            result.Should().NotBeNull();
            result.Count.Should().BeGreaterThan(0);
        }
Пример #2
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
                });
            }
        }
Пример #3
0
        public async Task TutorListQuery_PageCountOk(long userId)
        {
            var query  = new TutorListQuery(userId, "IL", 0, int.MaxValue);
            var result = await _fixture.QueryBus.QueryAsync(query, default);

            result.Should().NotBeNull();
            var count = result.Count;

            result.Count.Should().Be(result.Result.Count());

            var query2  = new TutorListQuery(userId, "IL", 0);
            var result2 = await _fixture.QueryBus.QueryAsync(query2, default);

            result2.Count.Should().Be(count);
        }
Пример #4
0
        public async Task <IEnumerable <FeedDto> > GetFeedAsync(GetFeedQuery query, CancellationToken token)
        {
            var tutorQuery = new TutorListQuery(query.UserId, query.Country, query.Page, _pageSize);

            return(await _queryBus.QueryAsync(tutorQuery, token).ContinueWith(r => r.Result.Result, token));
        }