Move a Task to another Parent Task Introduction
Generally tasks are categorized as a parent task or a child task. A child tasks can be moved between the parent tasks. The following article further explains how to move a child task from one parent to another parent task using our REST API, which can be used with any language, like .NET, Java, PHP, Ruby, Rails, Python, jQuery and many more.
API
Type
Description
Resource Link
/tasks/{name}/tasks/{taskUid}/move
PUT
Move one task to another parent task
PutMoveTask
cURL Example
SDKs
The Aspose.Tasks Cloud SDKs can be downloaded from the following page: Available SDKs
SDK Examples
C#
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-tasks-cloud/aspose-tasks-cloud-dotnet/
var remoteName = await UploadFileToStorageAsync("sample.mpp");
var getResponse = await TasksApi.GetTaskAsync(new GetTaskRequest
{
Name = remoteName,
Folder = this.DataFolder,
TaskUid = 6
});
Assert.AreEqual((int)HttpStatusCode.OK, getResponse.Code);
CollectionAssert.DoesNotContain(getResponse.Task.SubtasksUids, 10);
var response = await TasksApi.PutMoveTaskAsync(new PutMoveTaskRequest
{
Name = remoteName,
Folder = this.DataFolder,
ParentTaskUid = 6,
TaskUid = 10
});
Assert.AreEqual((int)HttpStatusCode.OK, response.Code);
PHP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?
// For complete examples and data files, please go to https://github.com/aspose-tasks-cloud/aspose-tasks-cloud-php/
$remoteName = "MoveTask.mpp";
$folder = $this->uploadFile("sample.mpp", $remoteName, '');
$response = $this->tasks->getTask(new Requests\GetTaskRequest($remoteName, 6, self::$storageName, $folder));
Assert::assertEquals(200, $response->getCode());
Assert::assertNotNull($response->getTask());
Assert::assertNotNull($response->getTask()->getSubtasksUids());
Assert::isFalse(in_array(10, $response->getTask()->getSubtasksUids()));
$response = $this->tasks->putMoveTask(new Requests\PutMoveTaskRequest($remoteName, 10, 6, null, self::$storageName, $folder));
Assert::assertEquals(200, $response->getCode());
$response = $this->tasks->getTask(new Requests\GetTaskRequest($remoteName, 6, self::$storageName, $folder));
Assert::assertEquals(200, $response->getCode());
Assert::assertNotNull($response->getTask());
Assert::assertNotNull($response->getTask()->getSubtasksUids());
Assert::isTrue(in_array(10, $response->getTask()->getSubtasksUids()));
Python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# For complete examples and data files, please go to https://github.com/aspose-tasks-cloud/aspose-tasks-cloud-python
filename = 'sample.mpp'
self.upload_file(filename)
get_request = GetTaskRequest(filename, 6)
get_result = self.tasks_api.get_task(get_request)
self.assertIsNotNone(get_result)
self.assertIsInstance(get_result, TaskResponse)
self.assertIsNone(next((s for s in get_result.task.subtasks_uids if s == 10), None))
put_request = PutMoveTaskRequest(filename, 10, 6)
put_result = self.tasks_api.put_move_task(put_request)
self.assertIsNotNone(put_result)
self.assertIsInstance(put_result, AsposeResponse)
get_result = self.tasks_api.get_task(get_request)
self.assertIsNotNone(get_result)
self.assertIsInstance(get_result, TaskResponse)
self.assertIsNotNone(next((s for s in get_result.task.subtasks_uids if s == 10), None))
Node.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-tasks-cloud/aspose-tasks-cloud-node
const fileName = "sample.mpp";
const localPath = "./Data/" + fileName;
const remotePath = "Temp/Data";
const remoteFullPath = remotePath + "/" + fileName;
await tasksApi.uploadFileToStorage(remoteFullPath, localPath);
const getRequest = new GetTaskRequest();
getRequest.name = fileName;
getRequest.folder = remotePath;
getRequest.taskUid = 6;
let getResult = await tasksApi.getTask(getRequest);
expect(getResult.response.statusCode).to.equal(200);
expect(getResult.body.task.subtasksUids.find(t => t == 10)).is.undefined;
const putMoveRequest = new PutMoveTaskRequest();
putMoveRequest.name = fileName;
putMoveRequest.folder = remotePath;
putMoveRequest.parentTaskUid = 6;
putMoveRequest.taskUid = 10;
const putMoveResult = await tasksApi.putMoveTask(putMoveRequest);
expect(putMoveResult.body.code).to.equal(200);
Go
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-tasks-cloud/aspose-tasks-cloud-go/
client, ctx := UploadTestFileToStorage(t, localFileName, remoteBaseTestDataFolder+"/"+remoteFileName)
getOpts := &requests.GetTaskOpts{
TaskUid: 6,
Name: remoteFileName,
Folder: optional.NewString(remoteBaseTestDataFolder),
}
getResult, _, err := client.TasksApi.GetTask(ctx, getOpts)
if err != nil {
t.Error(err)
}
assert.Equal(t, int32(200), getResult.Code)
assert.NotNil(t, getResult.Task)
for _, uid := range getResult.Task.SubtasksUids {
assert.NotEqual(t, int32(10), uid)
}
putMoveOpts := &requests.PutMoveTaskOpts{
TaskUid: 10,
ParentTaskUid: getOpts.TaskUid,
Name: remoteFileName,
Folder: optional.NewString(remoteBaseTestDataFolder),
}
putMoveResult, _, err := client.TasksApi.PutMoveTask(ctx, putMoveOpts)
if err != nil {
t.Error(err)
}
assert.Equal(t, int32(200), putMoveResult.Code)
Java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// For complete examples and data files, please go to https://github.com/aspose-tasks-cloud/aspose-tasks-cloud-java/
String localFileName = "sample.mpp";
String remoteFileName = TestInitializer.UploadFile(localFileName);
GetTaskRequest request1 = new GetTaskRequest(remoteFileName, 6, null, null);
TaskResponse result1 = TestInitializer.tasksApi.getTask(request1);
assertNotNull(result1);
assertEquals(Integer.valueOf(200), result1.getCode());
assertFalse(result1.getTask().getSubtasksUids().stream().anyMatch(d -> d.equals(10)));
PutMoveTaskRequest request2 = new PutMoveTaskRequest(remoteFileName, 10, 6, null, null, null);
AsposeResponse result2 = TestInitializer.tasksApi.putMoveTask(request2);
assertEquals(Integer.valueOf(200), result2.getCode());