public async Task <CollectionArtifacts> GetArtifactsInCollectionAsync( int collectionId, Pagination pagination, int userId) { var collection = await GetCollectionAsync(collectionId, userId); var searchArtifactsResult = await _searchEngineService.Search( collection.Id, null, ScopeType.Contents, true, userId); var artifactItems = await GetArtifactItemsDetailsAsync(searchArtifactsResult.ArtifactIds, userId); var propertyTypeInfos = await GetPropertyTypeInfosAsync(artifactItems); var profileColumns = await _artifactListService.GetProfileColumnsAsync( collection.Id, userId, ProfileColumns.Default); var validColumns = GetSelectedColumns(propertyTypeInfos, profileColumns, string.Empty).ToList(); var artifactIds = searchArtifactsResult.ArtifactIds.Skip((int)pagination.Offset) .Take((int)pagination.Limit).ToList(); var artifactsWithPropertyValues = await _collectionsRepository.GetArtifactsWithPropertyValuesAsync( userId, artifactIds, validColumns); var populatedArtifacts = PopulateArtifactsProperties(artifactIds, artifactsWithPropertyValues, validColumns); populatedArtifacts.ItemsCount = searchArtifactsResult.Total; return(populatedArtifacts); }