예제 #1
0
            public async Task <List <PostDto> > Handle(SyndicationQuery request, CancellationToken cancellationToken)
            {
                var episodeIds = await _context.Episode.Include(e => e.Series).Include(e => e.Status)
                                 .Where(e => e.Series.GameId == _tenant.Id && e.Status.Name == StaticValues.Published)
                                 .Select(x => x.Id).ToListAsync(cancellationToken: cancellationToken).ConfigureAwait(true);

                var posts = await _context.EpisodeEntry.Include(e => e.EpisodeEntryStatus)
                            .Include(e => e.EpisodeEntryType)
                            .Include(e => e.EpisodeEntryPlayer)
                            .Where(e => episodeIds.Contains(e.EpisodeId) && e.PublishedAt <= DateTime.UtcNow && e.EpisodeEntryStatus.Name == StaticValues.Published).OrderByDescending(e => e.Timeline)
                            .ProjectTo <PostDto>(_mapper.ConfigurationProvider)
                            .ToListAsync(cancellationToken).ConfigureAwait(true);

                return(posts);
            }
예제 #2
0
        public async Task ShouldReturnObject()
        {
            var mockTenantAccessor = new Mock <ITenantAccessor <TenantDto> >();

            mockTenantAccessor.Setup(x => x.Instance).Returns(new TenantDto()
            {
                Id = 1
            });
            var query = new SyndicationQuery();
            var sut   = new SyndicationQuery.SyndicationQueryHandler(_db, mockTenantAccessor.Object, _mapper);

            var result = await sut.Handle(query, CancellationToken.None);

            result.ShouldBeOfType <List <PostDto> >();
            result.Count.ShouldBeGreaterThanOrEqualTo(1);
        }