コード例 #1
0
        public void InitializePlugins_UnregisteredResource_InvalidOperationException()
        {
            // Arrange
            BoxClient client = new BoxClient(_config.Object);

            // Act
            client.AddResourcePlugin <BoxFilesManager>();

            // Assert
            var dm = client.ResourcePlugins.Get <BoxFoldersManager>();
        }
コード例 #2
0
        public void InitializePlugins_UnregisteredResource_InvalidOperationException()
        {
            // Arrange
            BoxClient client = new BoxClient(_config.Object);

            // Act
            client.AddResourcePlugin<BoxFilesManager>();

            // Assert
            var dm = client.ResourcePlugins.Get<BoxFoldersManager>();
        }
コード例 #3
0
        public void InitializePlugins_ValidResource_ValidPlugins()
        {
            // Arrange
            BoxClient client = new BoxClient(_config.Object);

            // Act
            client
            .AddResourcePlugin <BoxFilesManager>()
            .AddResourcePlugin <BoxFoldersManager>()
            .AddResourcePlugin <BoxCommentsManager>()
            .AddResourcePlugin <BoxGroupsManager>();

            var fm = client.ResourcePlugins.Get <BoxFilesManager>();
            var dm = client.ResourcePlugins.Get <BoxFoldersManager>();
            var cm = client.ResourcePlugins.Get <BoxCommentsManager>();
            var gm = client.ResourcePlugins.Get <BoxGroupsManager>();

            // Assert
            Assert.IsNotNull(fm);
            Assert.IsNotNull(dm);
            Assert.IsNotNull(cm);
            Assert.IsNotNull(gm);
        }
コード例 #4
0
        public void InitializePlugins_ValidResource_ValidPlugins()
        {
            // Arrange
            BoxClient client = new BoxClient(_config.Object);

            // Act
            client
                .AddResourcePlugin<BoxFilesManager>()
                .AddResourcePlugin<BoxFoldersManager>()
                .AddResourcePlugin<BoxCommentsManager>()
                .AddResourcePlugin<BoxGroupsManager>();

            var fm = client.ResourcePlugins.Get<BoxFilesManager>();
            var dm = client.ResourcePlugins.Get<BoxFoldersManager>();
            var cm = client.ResourcePlugins.Get<BoxCommentsManager>();
            var gm = client.ResourcePlugins.Get<BoxGroupsManager>();

            // Assert
            Assert.IsNotNull(fm);
            Assert.IsNotNull(dm);
            Assert.IsNotNull(cm);
            Assert.IsNotNull(gm);
        }
コード例 #5
0
        private async Task <BoxFile> ChunkedUpload(string path, string fileName, string parentFolderId,
                                                   long fileSize, BoxClient boxClient, string fileId = "", bool isNewVersion = false, bool idOnly = false)
        {
            using (var fileInMemoryStream = File.Open(path, FileMode.Open))
            {
                if (!idOnly)
                {
                    Reporter.WriteInformation($"File name: {fileName}");
                }
                BoxFileUploadSession boxFileUploadSession;
                if (isNewVersion)
                {
                    // TODO: Correct after SDK is fixed.
                    boxClient.AddResourcePlugin <BoxFileManagerCommand>();
                    var command = boxClient.ResourcePlugins.Get <BoxFileManagerCommand>();
                    boxFileUploadSession = await command.CreateNewVersionUploadSessionAsync(fileId, fileSize);
                }
                else
                {
                    var boxFileUploadSessionRequest = new BoxFileUploadSessionRequest()
                    {
                        FolderId = parentFolderId,
                        FileName = fileName,
                        FileSize = fileSize
                    };
                    boxFileUploadSession = await boxClient.FilesManager.CreateUploadSessionAsync(boxFileUploadSessionRequest);
                }
                var completeFileSha = await Task.Run(() =>
                {
                    return(Box.V2.Utility.Helper.GetSha1Hash(fileInMemoryStream));
                });

                var  boxSessionEndpoint = boxFileUploadSession.SessionEndpoints;
                var  uploadPartUri      = new Uri(boxSessionEndpoint.UploadPart);
                var  commitUri          = new Uri(boxSessionEndpoint.Commit);
                var  partSize           = boxFileUploadSession.PartSize;
                long partSizeLong;
                long.TryParse(partSize, out partSizeLong);
                var numberOfParts = this.GetUploadPartsCount(fileSize, partSizeLong);
                if (!idOnly)
                {
                    Reporter.WriteInformation($"Processing {fileName}");
                    ProgressBar.UpdateProgress($"Processing ", 0, numberOfParts);
                }
                var boxSessionParts = await UploadPartsInSessionAsync(uploadPartUri, numberOfParts, partSizeLong,
                                                                      fileInMemoryStream, client : boxClient, fileSize : fileSize, idOnly : idOnly);

                BoxSessionParts sessionPartsForCommit = new BoxSessionParts()
                {
                    Parts = boxSessionParts
                };
                if (!idOnly)
                {
                    Reporter.WriteInformation("");
                    Reporter.WriteInformation("Attempting to commit...");
                }
                // const int retryCount = 5;
                // var retryInterval = boxSessionParts.Count() * 100;

                // Commit
                if (!string.IsNullOrEmpty(fileId))
                {
                    return(await boxClient.FilesManager.CommitFileVersionSessionAsync(commitUri, completeFileSha, sessionPartsForCommit));
                }
                else
                {
                    return(await boxClient.FilesManager.CommitSessionAsync(commitUri, completeFileSha, sessionPartsForCommit));
                }
            }
        }