public async Task Should_resolve_folder_path_from_root() { var folderId1 = Guid.NewGuid(); var folder1 = CreateFolder(folderId1); A.CallTo(() => assetFolderRepository.FindAssetFolderAsync(folderId1)) .Returns(folder1); var result = await sut.FindAssetFolderAsync(folderId1); Assert.Equal(result, new[] { folder1 }); }
public async Task Should_find_asset_folder_with_path() { var folderId1 = DomainId.NewGuid(); var folder1 = CreateFolder(folderId1); A.CallTo(() => assetFolderRepository.FindAssetFolderAsync(appId.Id, folderId1, A <CancellationToken> ._)) .Returns(folder1); var result = await sut.FindAssetFolderAsync(appId.Id, folderId1); Assert.Equal(result, new[] { folder1 }); }
public async Task <IReadOnlyList <IAssetFolderEntity> > FindAssetFolderAsync(DomainId appId, DomainId id, CancellationToken ct = default) { using (Profiler.TraceMethod <AssetQueryService>()) { var result = new List <IAssetFolderEntity>(); while (id != DomainId.Empty) { var folder = await assetFolderRepository.FindAssetFolderAsync(appId, id, ct); if (folder == null || result.Any(x => x.Id == folder.Id)) { result.Clear(); break; } result.Insert(0, folder); id = folder.ParentId; } return(result); } }
private async Task <IAssetFolderEntity?> FindFolderCoreAsync(DomainId appId, DomainId id, CancellationToken ct) { using (var timeout = new CancellationTokenSource(options.TimeoutFind)) { using (var combined = CancellationTokenSource.CreateLinkedTokenSource(timeout.Token, ct)) { return(await assetFolderRepository.FindAssetFolderAsync(appId, id, combined.Token)); } } }
public async Task <IReadOnlyList <IAssetFolderEntity> > FindAssetFolderAsync(Guid id) { var result = new List <IAssetFolderEntity>(); while (id != default) { var folder = await assetFolderRepository.FindAssetFolderAsync(id); if (folder == null || result.Any(x => x.Id == folder.Id)) { result.Clear(); break; } result.Insert(0, folder); id = folder.ParentId; } return(result); }