private static async Task <BoxFolder> EnsureTopFolder(BoxClient auClient, TimeLimiter throttle) { BoxFolder topFolder; try { // トップレベルに親フォルダを作成 var folderParams = new BoxFolderRequest() { Name = Config.TopFolderName, Parent = new BoxRequestEntity() { Id = "0" } }; await throttle; topFolder = await auClient.FoldersManager.CreateAsync(folderParams); } catch (BoxConflictException <BoxFolder> bce) { // スクリプトを一度実行して、既にトップレベルフォルダが存在している topFolder = bce.ConflictingItems.First(); Console.WriteLine($"{topFolder.Name} already exists"); } return(topFolder); }
public async Task <FileSystemInfoContract> MoveItemAsync(RootName root, FileSystemId source, string moveName, DirectoryId destination, Func <FileSystemInfoLocator> locatorResolver) { var context = await RequireContext(root); if (source is DirectoryId) { var request = new BoxFolderRequest() { Id = source.Value, Parent = new BoxRequestEntity() { Id = destination.Value, Type = BoxType.folder }, Name = moveName }; var item = await AsyncFunc.Retry <BoxFolder, BoxException>(async() => await context.Client.FoldersManager.UpdateInformationAsync(request, fields: boxFolderFields), RETRIES); return(new DirectoryInfoContract(item.Id, item.Name, item.CreatedAt.Value, item.ModifiedAt.Value)); } else { var request = new BoxFileRequest() { Id = source.Value, Parent = new BoxRequestEntity() { Id = destination.Value, Type = BoxType.file }, Name = moveName }; var item = await AsyncFunc.Retry <BoxFile, BoxException>(async() => await context.Client.FilesManager.UpdateInformationAsync(request, fields: boxFileFields), RETRIES); return(new FileInfoContract(item.Id, item.Name, item.CreatedAt.Value, item.ModifiedAt.Value, item.Size.Value, item.Sha1.ToLowerInvariant())); } }
public async Task RestoreTrashedFolder_ValidResponse_ValidFolder() { /*** Arrange ***/ _handler.Setup(h => h.ExecuteAsync <BoxFolder>(It.IsAny <IBoxRequest>())) .Returns(() => Task.FromResult <IBoxResponse <BoxFolder> >(new BoxResponse <BoxFolder>() { Status = ResponseStatus.Success, ContentString = "{ \"type\": \"folder\", \"id\": \"588970022\", \"sequence_id\": \"2\", \"etag\": \"2\", \"name\": \"heloo world\", \"created_at\": \"2013-01-15T16:15:27-08:00\", \"modified_at\": \"2013-02-07T13:26:00-08:00\", \"description\": \"\", \"size\": 0, \"path_collection\": { \"total_count\": 1, \"entries\": [ { \"type\": \"folder\", \"id\": \"0\", \"sequence_id\": null, \"etag\": null, \"name\": \"All Files\" } ] }, \"created_by\": { \"type\": \"user\", \"id\": \"181757341\", \"name\": \"sean test\", \"login\": \"[email protected]\" }, \"modified_by\": { \"type\": \"user\", \"id\": \"181757341\", \"name\": \"sean test\", \"login\": \"[email protected]\" }, \"trashed_at\": null, \"purged_at\": null, \"content_created_at\": \"2013-01-15T16:15:27-08:00\", \"content_modified_at\": \"2013-02-07T13:26:00-08:00\", \"owned_by\": { \"type\": \"user\", \"id\": \"181757341\", \"name\": \"sean test\", \"login\": \"[email protected]\" }, \"shared_link\": null, \"folder_upload_email\": null, \"parent\": { \"type\": \"folder\", \"id\": \"0\", \"sequence_id\": null, \"etag\": null, \"name\": \"All Files\" }, \"item_status\": \"active\" }" })); /*** Act ***/ BoxFolderRequest folderReq = new BoxFolderRequest() { Id = "fakeId", Parent = new BoxRequestEntity() { Id = "fakeId" } }; BoxFolder f = await _foldersManager.RestoreTrashedFolderAsync(folderReq); /*** Assert ***/ Assert.AreEqual("folder", f.Type); Assert.AreEqual("588970022", f.Id); Assert.AreEqual("2", f.SequenceId); Assert.AreEqual("2", f.ETag); Assert.AreEqual("heloo world", f.Name); }
public static async Task Setup(BoxClient boxClient) { var folderRequest = new BoxFolderRequest() { Name = "Test Folder", Parent = new BoxRequestEntity() { Id = "0" } }; var newFolder = await boxClient.FoldersManager.CreateAsync(folderRequest); var pathToFile = HttpContext.Current.Server.MapPath("~/"); var fileName = "text.txt"; using (FileStream fs = File.Open(pathToFile + fileName, FileMode.Open)) { // Create request object with name and parent folder the file should be uploaded to BoxFileRequest request = new BoxFileRequest() { Name = fileName, Parent = new BoxRequestEntity() { Id = "0" } }; var boxFile = await boxClient.FilesManager.UploadAsync(request, fs); } }
protected async Task RunRename() { base.CheckForId(this._folderId.Value, this._app); base.CheckForValue(this._folderName.Value, _app, "A name value is required to rename a folder."); var boxClient = base.ConfigureBoxClient(oneCallAsUserId: base._asUser.Value(), oneCallWithToken: base._oneUseToken.Value()); var folderRenameRequest = new BoxFolderRequest() { Name = this._folderName.Value, Id = this._folderId.Value }; if (this._description.HasValue()) { folderRenameRequest.Description = this._description.Value(); } BoxFolder folder; if (this._etag.HasValue()) { folder = await boxClient.FoldersManager.UpdateInformationAsync(folderRenameRequest, etag : this._etag.Value()); } else { folder = await boxClient.FoldersManager.UpdateInformationAsync(folderRenameRequest); } if (base._json.HasValue() || this._home.GetBoxHomeSettings().GetOutputJsonSetting()) { base.OutputJson(folder); return; } base.PrintFolder(folder); }
public async Task <FileSystemInfoContract> RenameItemAsync(RootName root, FileSystemId target, string newName, Func <FileSystemInfoLocator> locatorResolver) { var context = await RequireContext(root); if (target is DirectoryId) { var request = new BoxFolderRequest() { Id = target.Value, Name = newName }; var item = await AsyncFunc.Retry <BoxFolder, BoxException>(async() => await context.Client.FoldersManager.UpdateInformationAsync(request, fields: boxFolderFields), RETRIES); return(new DirectoryInfoContract(item.Id, item.Name, item.CreatedAt.Value, item.ModifiedAt.Value)); } else { var request = new BoxFileRequest() { Id = target.Value, Name = newName }; var item = await AsyncFunc.Retry <BoxFile, BoxException>(async() => await context.Client.FilesManager.UpdateInformationAsync(request, fields: boxFileFields), RETRIES); return(new FileInfoContract(item.Id, item.Name, item.CreatedAt.Value, item.ModifiedAt.Value, item.Size.Value, item.Sha1.ToLowerInvariant())); } }
public async Task GetTrashItemsAsync_ForTrashedFolder_ShouldReturnTrashedFolder() { var createFolderRequest = new BoxFolderRequest { Name = GetUniqueName("folder"), Parent = new BoxRequestEntity { Id = FolderId } }; var newFolder = await UserClient.FoldersManager.CreateAsync(createFolderRequest); await UserClient.FoldersManager.DeleteAsync(newFolder.Id, true); var response = await UserClient.FoldersManager.GetTrashItemsAsync(100); var trashedFolderFound = false; foreach (var item in response.Entries) { if (item is BoxFolder folder) { if (item.Id == newFolder.Id) { trashedFolderFound = true; } } } Assert.IsTrue(trashedFolderFound); await UserClient.FoldersManager.PurgeTrashedFolderAsync(newFolder.Id); }
public async Task UpdateFolderInformation_ValidResponse_ValidFolder() { /*** Arrange ***/ _handler.Setup(h => h.ExecuteAsync <BoxFolder>(It.IsAny <IBoxRequest>())) .Returns(() => Task.FromResult <IBoxResponse <BoxFolder> >(new BoxResponse <BoxFolder>() { Status = ResponseStatus.Success, ContentString = "{ \"type\": \"folder\", \"id\": \"11446498\", \"sequence_id\": \"1\", \"etag\": \"1\", \"name\": \"New Folder Name!\", \"created_at\": \"2012-12-12T10:53:43-08:00\", \"modified_at\": \"2012-12-12T11:15:04-08:00\", \"description\": \"Some pictures I took\", \"size\": 629644, \"path_collection\": { \"total_count\": 1, \"entries\": [ { \"type\": \"folder\", \"id\": \"0\", \"sequence_id\": null, \"etag\": null, \"name\": \"All Files\" } ] }, \"created_by\": { \"type\": \"user\", \"id\": \"17738362\", \"name\": \"sean rose\", \"login\": \"[email protected]\" }, \"modified_by\": { \"type\": \"user\", \"id\": \"17738362\", \"name\": \"sean rose\", \"login\": \"[email protected]\" }, \"owned_by\": { \"type\": \"user\", \"id\": \"17738362\", \"name\": \"sean rose\", \"login\": \"[email protected]\" }, \"shared_link\": { \"url\": \"https://www.box.com/s/vspke7y05sb214wjokpk\", \"download_url\": \"https://www.box.com/shared/static/vspke7y05sb214wjokpk\", \"vanity_url\": null, \"is_password_enabled\": false, \"unshared_at\": null, \"download_count\": 0, \"preview_count\": 0, \"access\": \"open\", \"permissions\": { \"can_download\": true, \"can_preview\": true } }, \"folder_upload_email\": { \"access\": \"open\", \"email\": \"[email protected]\" }, \"parent\": { \"type\": \"folder\", \"id\": \"0\", \"sequence_id\": null, \"etag\": null, \"name\": \"All Files\" }, \"item_status\": \"active\", \"item_collection\": { \"total_count\": 1, \"entries\": [ { \"type\": \"file\", \"id\": \"5000948880\", \"sequence_id\": \"3\", \"etag\": \"3\", \"sha1\": \"134b65991ed521fcfe4724b7d814ab8ded5185dc\", \"name\": \"tigers.jpeg\" } ], \"offset\": 0, \"limit\": 100 } }" })); /*** Act ***/ BoxFolderRequest folderReq = new BoxFolderRequest() { Id = "fakeId", Name = "New Folder Name!", FolderUploadEmail = new BoxEmailRequest() { Access = "open" } }; BoxFolder f = await _foldersManager.UpdateInformationAsync(folderReq); /*** Assert ***/ Assert.AreEqual("folder", f.Type); Assert.AreEqual("11446498", f.Id); Assert.AreEqual("1", f.SequenceId); Assert.AreEqual("1", f.ETag); Assert.AreEqual("New Folder Name!", f.Name); }
protected async Task RunCreate() { if (this._bulkPath.HasValue()) { var json = false; if (base._json.HasValue() || this._home.GetBoxHomeSettings().GetOutputJsonSetting()) { json = true; } await this.CreateFoldersFromFile(this._bulkPath.Value(), this._save.HasValue(), this._filePath.Value(), this._fileFormat.Value(), json : json); return; } base.CheckForParentId(this._parentFolderId.Value, this._app); var BoxClient = base.ConfigureBoxClient(oneCallAsUserId: base._asUser.Value(), oneCallWithToken: base._oneUseToken.Value()); var folderRequest = new BoxFolderRequest(); folderRequest.Parent = new BoxItemRequest(); folderRequest.Parent.Id = this._parentFolderId.Value; folderRequest.Name = this._name.Value; var folder = await BoxClient.FoldersManager.CreateAsync(folderRequest); if (this._idOnly.HasValue()) { Reporter.WriteInformation(folder.Id); return; } if (base._json.HasValue() || this._home.GetBoxHomeSettings().GetOutputJsonSetting()) { base.OutputJson(folder); return; } base.PrintFolder(folder); }
public async Task <FileSystemInfoContract> CopyItemAsync(RootName root, FileSystemId source, string copyName, DirectoryId destination, bool recurse) { var context = await RequireContext(root); if (source is DirectoryId) { var request = new BoxFolderRequest() { Id = source.Value, Name = copyName, Parent = new BoxRequestEntity() { Id = destination.Value } }; var item = await AsyncFunc.Retry <BoxFolder, BoxException>(async() => await context.Client.FoldersManager.CopyAsync(request, boxFolderFields), RETRIES); return(new DirectoryInfoContract(item.Id, item.Name, item.CreatedAt.Value, item.ModifiedAt.Value)); } else { var request = new BoxFileRequest() { Id = source.Value, Name = copyName, Parent = new BoxRequestEntity() { Id = destination.Value } }; var item = await AsyncFunc.Retry <BoxFile, BoxException>(async() => await context.Client.FilesManager.CopyAsync(request, boxFileFields), RETRIES); return(new FileInfoContract(item.Id, item.Name, item.CreatedAt.Value, item.ModifiedAt.Value, item.Size.Value, item.Sha1.ToLowerInvariant())); } }
public FileSystemEntry CreateDirectory(string path) { FileSystemEntry fileSystemEntry = null; string itemType = null; string parentPath = "";// + RemoveLastFolderFromPath(path); string parentFolderId = GetFileOrFolderIDfromPath(parentPath, ref itemType); try { var boxEntityRequest = new BoxRequestEntity() { Id = parentFolderId, Type = BoxType.folder }; BoxFolderRequest folderRequest = new BoxFolderRequest() { Parent = boxEntityRequest }; var createDirectory = boxClient.FoldersManager.CreateAsync(folderRequest); createDirectory.Wait(); fileSystemEntry = GetEntry(path); } catch (Exception e) { if (e.InnerException != null) { EventLog.WriteEntry("Box SMB", e.Message + " Inner Exception: " + e.InnerException.Message, EventLogEntryType.Error); } else { EventLog.WriteEntry("Box SMB", e.Message, EventLogEntryType.Error); } } return(fileSystemEntry); }
public BoxFolder RenameFolder(string boxFolderId, string newName) { var boxFolderRequest = new BoxFolderRequest { Id = boxFolderId, Name = newName }; return(_boxClient.FoldersManager.UpdateInformationAsync(boxFolderRequest, _boxFields).Result); }
public async Task UpdateFolderInformation_ValidRequest_Timeout() { BoxFolderRequest folderReq = new BoxFolderRequest() { Id = "0" }; var timeout = new TimeSpan(0, 0, 0, 0, 1); // 1ms timeout, should always cancel the request BoxFolder f = await _client.FoldersManager.UpdateInformationAsync(folderRequest : folderReq, timeout : timeout); }
public async Task RestoreFolder_ValidResponse() { const string folderId = "44086997331"; BoxFolderRequest folderRequest = new BoxFolderRequest() { Id = folderId }; var restoredFolder = await _client.FoldersManager.RestoreTrashedFolderAsync(folderRequest); }
public static async Task PrepareBoxAppUser(ClaimsIdentity externalIdentity) { var auth0UserId = externalIdentity.Claims.FirstOrDefault(c => c.Type == "user_id").Value; var boxId = GetBoxIdFromAuth0(auth0UserId); if (boxId == null) { //create a new app user in Box string email = externalIdentity.Claims.FirstOrDefault(c => c.Type == "email").Value; var userRequest = new BoxUserRequest() { Name = email, IsPlatformAccessOnly = true }; var appUser = await AdminClient().UsersManager.CreateEnterpriseUserAsync(userRequest); boxId = appUser.Id; //store the boxId in the user's Auth0 metadata var meta = new Dictionary <string, object>(); meta.Add(BOX_USER_ID_KEY, boxId); AUTH0_CLIENT.UpdateUserMetadata(auth0UserId, meta); //now do the initial box account setup var boxClient = UserClient((string)boxId); var folderRequest = new BoxFolderRequest() { Name = "Test Folder", Parent = new BoxRequestEntity() { Id = "0" } }; var newFolder = await boxClient.FoldersManager.CreateAsync(folderRequest); var pathToFile = HttpContext.Current.Server.MapPath("~/Assets/"); var fileName = "test.txt"; using (FileStream fs = File.Open(pathToFile + fileName, FileMode.Open)) { // Create request object with name and parent folder the file should be uploaded to BoxFileRequest request = new BoxFileRequest() { Name = fileName, Parent = new BoxRequestEntity() { Id = "0" } }; var boxFile = await boxClient.FilesManager.UploadAsync(request, fs); } } HttpContext.Current.Session[BOX_USER_ID_KEY] = (string)boxId; }
public BoxFolder CreateFolder(string title, string parentId) { var boxFolderRequest = new BoxFolderRequest { Name = title, Parent = new BoxRequestEntity { Id = parentId } }; return(_boxClient.FoldersManager.CreateAsync(boxFolderRequest, _boxFields).Result); }
public BoxFolder MoveFolder(string boxFolderId, string toFolderId) { var boxFolderRequest = new BoxFolderRequest { Id = boxFolderId, Parent = new BoxRequestEntity { Id = toFolderId } }; return(_boxClient.FoldersManager.UpdateInformationAsync(boxFolderRequest, _boxFields).Result); }
private static Task <BoxFolder> CreateNewFolder(BoxClient userClient) { var folderRequest = new BoxFolderRequest { Description = "Test folder", Name = "Misc", Parent = new BoxFolderRequest { Id = "0" } }; return(userClient.FoldersManager.CreateAsync(folderRequest)); }
/// <summary> /// Used to update information about the folder. To move a folder, update the ID of its parent. To enable an /// email address that can be used to upload files to this folder, update the folder_upload_email attribute. /// An optional If-Match header can be included to ensure that client only updates the folder if it knows /// about the latest version. /// </summary> /// <returns></returns> public async Task <BoxFolder> UpdateInformationAsync(BoxFolderRequest folderRequest, List <string> fields = null) { folderRequest.ThrowIfNull("folderRequest") .Id.ThrowIfNullOrWhiteSpace("folderRequest.Id"); BoxRequest request = new BoxRequest(_config.FoldersEndpointUri, folderRequest.Id) .Param(ParamFields, fields) .Payload(_converter.Serialize(folderRequest)) .Method(RequestMethod.Put); IBoxResponse <BoxFolder> response = await ToResponseAsync <BoxFolder>(request).ConfigureAwait(false); return(response.ResponseObject); }
protected async virtual Task <BoxFolder> MoveFolder(string folderId, string parentFolderId, string etag = "") { var boxClient = base.ConfigureBoxClient(oneCallAsUserId: base._asUser.Value(), oneCallWithToken: base._oneUseToken.Value()); var folderRequest = new BoxFolderRequest() { Id = folderId, Parent = new BoxItemRequest() { Id = parentFolderId } }; return(await boxClient.FoldersManager.UpdateInformationAsync(folderRequest, etag : etag)); }
private static async Task <FileFolderInfo> CreateFolder(BoxClient client, UserTokenHandler tokenHandler, string name, string parentFolderID) { var folderRequest = new BoxFolderRequest { Name = name, Parent = new BoxRequestEntity { Id = parentFolderID } }; Box.V2.Models.BoxFolder folder = await client.FoldersManager.CreateAsync(folderRequest, new List <string> { BoxItem.FieldName, BoxItem.FieldModifiedAt }).ConfigureAwait(false); return(new FileFolderInfo(folder.Id, folder.Name, parentFolderID, folder.ModifiedAt)); }
public BoxFolder CopyFolder(string boxFolderId, string newFolderName, string toFolderId) { var boxFolderRequest = new BoxFolderRequest { Id = boxFolderId, Name = newFolderName, Parent = new BoxRequestEntity { Id = toFolderId } }; return(_boxClient.FoldersManager.CopyAsync(boxFolderRequest, _boxFields).Result); }
private static async Task MoveFolder(BoxItem item, BoxFolder topFolder, BoxClient auClient, TimeLimiter throttle) { var folderRequest = new BoxFolderRequest() { Id = item.Id, Parent = new BoxRequestEntity() { Id = topFolder.Id } }; await throttle; await auClient.FoldersManager.UpdateInformationAsync(folderRequest); }
public async Task <DirectoryInfoContract> NewDirectoryItemAsync(RootName root, DirectoryId parent, string name) { var context = await RequireContextAsync(root); var request = new BoxFolderRequest() { Name = name, Parent = new BoxRequestEntity() { Id = parent.Value } }; var item = await retryPolicy.ExecuteAsync(() => context.Client.FoldersManager.CreateAsync(request, boxFolderFields)); return(new DirectoryInfoContract(item.Id, item.Name, item.CreatedAt.Value, item.ModifiedAt.Value)); }
public async Task <DirectoryInfoContract> NewDirectoryItemAsync(RootName root, DirectoryId parent, string name) { var context = await RequireContext(root); var request = new BoxFolderRequest() { Name = name, Parent = new BoxRequestEntity() { Id = parent.Value } }; var item = await AsyncFunc.Retry <BoxFolder, BoxException>(async() => await context.Client.FoldersManager.CreateAsync(request, boxFolderFields), RETRIES); return(new DirectoryInfoContract(item.Id, item.Name, item.CreatedAt.Value, item.ModifiedAt.Value)); }
public async Task UpdateInformationAsync_ForExistingFolder_ShouldCorrectlyUpdateThisFolderName() { var createdFolder = await CreateFolder(FolderId); var newFolderName = GetUniqueName("new_folder_name"); var updateRequest = new BoxFolderRequest() { Id = createdFolder.Id, Name = newFolderName, }; BoxFolder folder = await UserClient.FoldersManager.UpdateInformationAsync(updateRequest); Assert.AreEqual(folder.Name, newFolderName); }
public async Task CreateAsync_ForCorrectBoxFolderRequest_ShouldCreateNewFolder() { var folderName = GetUniqueName("Folder"); var folderReq = new BoxFolderRequest() { Name = folderName, Parent = new BoxRequestEntity() { Id = FolderId } }; BoxFolder folder = await UserClient.FoldersManager.CreateAsync(folderReq); Assert.AreEqual(folder.Name, folderName); }
public static async Task <FileFolderInfo> MoveFolder(UserTokenHandler tokenHandler, string movingFolderID, string newParentFolderID) { var client = GetNewBoxClient(tokenHandler); var folderRequest = new BoxFolderRequest { Id = movingFolderID, Parent = new BoxRequestEntity() { Id = newParentFolderID, Type = BoxType.folder } }; BoxFolder folder = await client.FoldersManager.UpdateInformationAsync(folderRequest, new List <string> { BoxItem.FieldName, BoxItem.FieldModifiedAt, BoxItem.FieldParent }).ConfigureAwait(false); return(new FileFolderInfo(folder.Id, folder.Name, folder.Parent.Id, folder.ModifiedAt)); }
private static async Task <BoxFolder> CreateFolderAsync(BoxClient auClient, BoxUser appUser, int num, TimeLimiter throttle) { var folderParams = new BoxFolderRequest() { Name = "TestFolder" + num, Parent = new BoxRequestEntity() { Id = "0" } }; await throttle; var folder = await auClient.FoldersManager.CreateAsync(folderParams); return(folder); }
/// <summary> /// Used to create a new empty folder. The new folder will be created inside of the specified parent folder. /// </summary> /// <param name="folderRequest">BoxFolderRequest object</param> /// <param name="fields">Attribute(s) to include in the response</param> /// <returns>A full folder object is returned if the parent folder ID is valid and if no name collisions occur.</returns> public async Task <BoxFolder> CreateAsync(BoxFolderRequest folderRequest, IEnumerable <string> fields = null) { folderRequest.ThrowIfNull("folderRequest") .Name.ThrowIfNullOrWhiteSpace("folderRequest.Name"); folderRequest.Parent.ThrowIfNull("folderRequest.Parent") .Id.ThrowIfNullOrWhiteSpace("folderRequest.Parent.Id"); BoxRequest request = new BoxRequest(_config.FoldersEndpointUri) .Method(RequestMethod.Post) .Param(ParamFields, fields) .Payload(_converter.Serialize <BoxFolderRequest>(folderRequest)); IBoxResponse <BoxFolder> response = await ToResponseAsync <BoxFolder>(request).ConfigureAwait(false); return(response.ResponseObject); }