public async Task ReturnsMappedData() { var uniqueData = UNIQUE_PREFIX + nameof(ReturnsMappedData); using var app = _appFactory.Create(); var directoryId = await app.TestData.PageDirectories().AddAsync(uniqueData); var page1Id = await app.TestData.Pages().AddAsync(uniqueData + "1", directoryId); var page2Id = await app.TestData.Pages().AddAsync(uniqueData + "2", directoryId); var contentRepository = app.Services.GetContentRepositoryWithElevatedPermissions(); var query = new GetPageEntityMicroSummariesByIdRangeQuery(new int[] { page1Id, page2Id }); var pageLookup = await contentRepository.ExecuteQueryAsync(query); using (new AssertionScope()) { pageLookup.Should().NotBeNull(); pageLookup.Count.Should().Be(2); var page1 = pageLookup.GetOrDefault(page1Id); page1.Should().NotBeNull(); page1.EntityDefinitionCode.Should().Be(PageEntityDefinition.DefinitionCode); page1.EntityDefinitionName.Should().Be(new PageEntityDefinition().Name); page1.IsPreviousVersion.Should().BeFalse(); page1.RootEntityId.Should().Be(page1Id); page1.RootEntityTitle.Should().Be(uniqueData + "1"); var page2 = pageLookup.GetOrDefault(page2Id); page2.Should().NotBeNull(); } }
private IQueryable <RootEntityMicroSummary> Query(GetPageEntityMicroSummariesByIdRangeQuery query, IExecutionContext executionContext) { var definition = _entityDefinitionRepository.GetByCode(PageEntityDefinition.DefinitionCode); var dbQuery = _dbContext .PagePublishStatusQueries .AsNoTracking() .FilterActive() .FilterByStatus(PublishStatusQuery.Latest, executionContext.ExecutionDate) .Where(q => query.PageIds.Contains(q.PageId)) .Select(q => q.PageVersion) .Select(v => new RootEntityMicroSummary() { RootEntityId = v.PageId, RootEntityTitle = v.Title, EntityDefinitionName = definition.Name, EntityDefinitionCode = definition.EntityDefinitionCode }); return(dbQuery); }
public async Task <IDictionary <int, RootEntityMicroSummary> > ExecuteAsync(GetPageEntityMicroSummariesByIdRangeQuery query, IExecutionContext executionContext) { var definition = _entityDefinitionRepository.GetRequiredByCode(PageEntityDefinition.DefinitionCode); var results = await _dbContext .PagePublishStatusQueries .AsNoTracking() .FilterActive() .FilterByStatus(PublishStatusQuery.Latest, executionContext.ExecutionDate) .Where(q => query.PageIds.Contains(q.PageId)) .Select(q => q.PageVersion) .Select(v => new RootEntityMicroSummary() { RootEntityId = v.PageId, RootEntityTitle = v.Title, EntityDefinitionName = definition.Name, EntityDefinitionCode = definition.EntityDefinitionCode }) .ToDictionaryAsync(e => e.RootEntityId); return(results); }
public IEnumerable <IPermissionApplication> GetPermissions(GetPageEntityMicroSummariesByIdRangeQuery query) { yield return(new PageReadPermission()); }
public async Task <IDictionary <int, RootEntityMicroSummary> > ExecuteAsync(GetPageEntityMicroSummariesByIdRangeQuery query, IExecutionContext executionContext) { var results = await Query(query, executionContext).ToDictionaryAsync(e => e.RootEntityId); return(results); }