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

CreateAsync() public method

public CreateAsync ( IUnixDirectoryEntry targetDirectory, string fileName, Stream data, CancellationToken cancellationToken ) : Task
targetDirectory IUnixDirectoryEntry
fileName string
data Stream
cancellationToken System.Threading.CancellationToken
return Task
        public async Task<IBackgroundTransfer> CreateAsync(IUnixDirectoryEntry targetDirectory, string fileName, Stream data, CancellationToken cancellationToken)
        {
            var targetFolderItem = ((OneDriveDirectoryEntry)targetDirectory).Item;
            var tempData = await _supportFactory.CreateTemporaryData(data, cancellationToken);
            var targetId = GetFileId(targetFolderItem.Id, fileName);
            var backgroundUploads = new BackgroundUpload(targetId, targetFolderItem.Id, fileName, tempData, this);
            await _uploadsLock.WaitAsync(cancellationToken);
            try
            {
                var fileId = GetFileId(targetFolderItem.Id, fileName);
                _uploads.Add(fileId, backgroundUploads);
            }
            finally
            {
                _uploadsLock.Release();
            }
            return backgroundUploads;
        }