Пример #1
0
        private async Task <QueryResult <FileMetadata> > GetFileByPath(string path, OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
        {
            var viewChangeResult = await _oneDriveApi.ViewChangeByPath(path, oneDriveCredentials, cancellationToken);

            var viewChanges = viewChangeResult.value.Select(CreateFileMetadata).ToArray();

            return(new QueryResult <FileMetadata>
            {
                Items = viewChanges,
                TotalRecordCount = viewChanges.Length
            });
        }
        private async Task <QueryResult <FileMetadata> > GetFileById(string id, OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
        {
            _logger.Debug("Getting file with id {0}", id);

            var viewChangeResult = await _oneDriveApi.ViewChangeById(id, oneDriveCredentials, cancellationToken);

            var viewChanges = viewChangeResult.value.Select(CreateFileMetadata).ToArray();

            return(new QueryResult <FileMetadata>
            {
                Items = viewChanges,
                TotalRecordCount = viewChanges.Length
            });
        }
Пример #3
0
        private async Task <string> UploadFile(string url, Stream stream, OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
        {
            while (true)
            {
                var startIndex = stream.Position;
                var buffer     = await FillBuffer(stream, cancellationToken);

                var endIndex = startIndex + buffer.Length - 1;

                var uploadSession = await _oneDriveApi.UploadFragment(url, startIndex, endIndex, stream.Length, buffer, oneDriveCredentials, cancellationToken);

                if (!string.IsNullOrEmpty(uploadSession.id))
                {
                    return(uploadSession.id);
                }
            }
        }
Пример #4
0
        private async Task CreateFolderHierarchy(string[] pathParts, OneDriveCredentials credentials, CancellationToken cancellationToken)
        {
            for (int i = 0; i < pathParts.Length - 1; i++)
            {
                try
                {
                    var folder = GetFullPath(pathParts.Take(i));
                    var name   = pathParts[i];

                    _logger.Debug("Creating folder {0}/{1}", folder, name);

                    await _oneDriveApi.CreateFolder(folder, name, credentials, cancellationToken);
                }
                catch
                {
                    _logger.Debug("Folder already exists.");
                }
            }
        }
Пример #5
0
        private async Task <QueryResult <FileMetadata> > GetAllFiles(OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
        {
            var viewChangeResult = new ViewChangesResult {
                HasMoreChanges = true
            };
            var files = new List <FileMetadata>();

            while (viewChangeResult.HasMoreChanges)
            {
                viewChangeResult = await _oneDriveApi.ViewChanges(viewChangeResult.Token, oneDriveCredentials, cancellationToken);

                var newFiles = viewChangeResult.value.Select(CreateFileMetadata);
                files.AddRange(newFiles);
            }

            return(new QueryResult <FileMetadata>
            {
                Items = files.ToArray(),
                TotalRecordCount = files.Count
            });
        }
        private async Task<QueryResult<FileMetadata>> GetAllFiles(OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
        {
            var viewChangeResult = new ViewChangesResult { HasMoreChanges = true };
            var files = new List<FileMetadata>();

            while (viewChangeResult.HasMoreChanges)
            {
                viewChangeResult = await _oneDriveApi.ViewChanges(viewChangeResult.Token, oneDriveCredentials, cancellationToken);
                var newFiles = viewChangeResult.value.Select(CreateFileMetadata);
                files.AddRange(newFiles);
            }

            return new QueryResult<FileMetadata>
            {
                Items = files.ToArray(),
                TotalRecordCount = files.Count
            };
        }
        private async Task<QueryResult<FileMetadata>> GetFileByPath(string path, OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
        {
            var viewChangeResult = await _oneDriveApi.ViewChangeByPath(path, oneDriveCredentials, cancellationToken);
            var viewChanges = viewChangeResult.value.Select(CreateFileMetadata).ToArray();

            return new QueryResult<FileMetadata>
            {
                Items = viewChanges,
                TotalRecordCount = viewChanges.Length
            };
        }
        private async Task<string> UploadFile(string url, Stream stream, OneDriveCredentials oneDriveCredentials, CancellationToken cancellationToken)
        {
            while (true)
            {
                var startIndex = stream.Position;
                var buffer = await FillBuffer(stream, cancellationToken);
                var endIndex = startIndex + buffer.Length - 1;

                var uploadSession = await _oneDriveApi.UploadFragment(url, startIndex, endIndex, stream.Length, buffer, oneDriveCredentials, cancellationToken);

                if (!string.IsNullOrEmpty(uploadSession.id))
                {
                    return uploadSession.id;
                }
            }
        }
        private async Task CreateFolderHierarchy(string[] pathParts, OneDriveCredentials credentials, CancellationToken cancellationToken)
        {
            for (int i = 0; i < pathParts.Length - 1; i++)
            {
                try
                {
                    var folder = GetFullPath(pathParts.Take(i));
                    var name = pathParts[i];

                    _logger.Debug("Creating folder {0}/{1}", folder, name);

                    await _oneDriveApi.CreateFolder(folder, name, credentials, cancellationToken);
                }
                catch
                {
                    _logger.Debug("Folder already exists.");
                }
            }
        }