FubarDev.FtpServer.FileSystem.OneDrive.OneDriveFileSystem.ConvertToUnixFileSystemEntries C# (CSharp) Method

ConvertToUnixFileSystemEntries() private method

private ConvertToUnixFileSystemEntries ( string parentId, IEnumerable items, CancellationToken cancellationToken ) : Task>
parentId string
items IEnumerable
cancellationToken System.Threading.CancellationToken
return Task>
        private async Task<IReadOnlyList<IUnixFileSystemEntry>> ConvertToUnixFileSystemEntries(string parentId, IEnumerable<Item> items, CancellationToken cancellationToken)
        {
            var result = new List<IUnixFileSystemEntry>();
            await _uploadsLock.WaitAsync(cancellationToken);
            try
            {
                var resultItems = items
                    .Where(x => x.Deleted == null)
                    .Select(ConvertToUnixFileSystemEntryLocked)
                    .ToList();
                var foundNames = new HashSet<string>(resultItems.Select(x => x.Name), StringComparer.OrdinalIgnoreCase);
                result.AddRange(resultItems);
                result.AddRange(
                    _uploads.Values
                            .Where(x => x.ParentId == parentId && !foundNames.Contains(x.Name))
                            .Select(x => new OneDriveFileEntry(this, x.Item, x.FileSize)));
            }
            finally
            {
                _uploadsLock.Release();
            }
            return result;
        }
    }