POST /Project/Duplicate/

Duplicates the specified project.
 

Request

Method Request URI
POST /API/Project/Duplicate/?sessionId=value

URI Parameters

URI Parameter Description
sessionId ID of the current session.

Request Body

Name: options
Type: Dundas.BI.WebApi.Models.DuplicateProjectOptions

Response

Response Body

The Dundas.BI.WebApi.Models.ProjectData object representing the duplicated project, or an error code in case of operation failure.

Examples

This example will duplicate the project with ID = "c37a6684-af41-49f7-bfba-8da6fcf91680" to a new project with the name "ProjectZ".

C# Java JavaScript
using System.Net;
using System.Net.Http;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Web.Script.Serialization;

   ...

using (HttpClient httpClient = new HttpClient())
{
	// Get Session Id
	string logonUri = "http://localhost:8004/Api/LogOn/";
	var logonOptions = new
	{
		accountName = "admin",
		password = "1234",
		cultureName = string.Empty,
		deleteOtherSessions = true,
		isWindowsLogOn = false
	};

	JavaScriptSerializer serializer = new JavaScriptSerializer();
	var requestBodyAsString = serializer.Serialize(logonOptions);
	StringContent content =
		new StringContent(
			requestBodyAsString,
			Encoding.UTF8,
			"application/json"
		);

	string jsonString = string.Empty;

	using (var response = httpClient.PostAsync(logonUri, content).Result)
	{
		jsonString =
			response.Content.ReadAsStringAsync().Result;
	}

	var obj = (Dictionary<string,object>) serializer.DeserializeObject(jsonString);
	string sessionId = obj["sessionId"].ToString();
	string url = "http://localhost:8004/API/Project/Duplicate/?sessionId=" + sessionId + "";

	// Define the request body
	HttpContent requestBody = null;
	requestBody = 
		new StringContent(@"
		{
		    ""sourceProjectId"": ""c37a6684-af41-49f7-bfba-8da6fcf91680"",
		    ""projectName"": ""ProjectZ"",
		    ""tenantId"": null,
		    ""privilegeOption"": ""copy"",
		    ""treatNullTenantIdAsNoTenant"": true
		}
		",Encoding.UTF8,"application/json");
	using (var response = httpClient.PostAsync(url, requestBody).Result)
	{
		if(response.StatusCode == HttpStatusCode.OK)
		{
			Console.WriteLine("Success");

			// The Dundas.BI.WebApi.Models.ProjectData
			// object representing the duplicated
			// project, or an error code in case of
			// operation failure.
			string jsonObject = response.Content.ReadAsStringAsync().Result;
		}
	}
}

		
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.apache.http.entity.StringEntity;
import org.json.JSONObject;

   ...

HttpClient httpClient = HttpClientBuilder.create().build();

String url = "http://localhost:8004";

// Get Session Id
String logonUri = url + "Api/LogOn/"
HttpPost httpPost = new HttpPost(logonUri);
StringEntity stringEntity = 
	new StringEntity("{
		+ "\"accountName\":\"admin\","
		+ "\"password":\"1234\","
		+ "\"cultureName\":\"\","
		+ "\"deleteOtherSessions\":false,"
		+ "\"isWindowsLogOn\":false"
		+ "}"
	);
stringEntity.setContentType("application/json");
httpPost.setEntity(stringEntity);
HttpResponse httpResponse = httpClient.execute(httpPost);
String jsonString = EntityUtils.toString(httpResponse.getEntity());
JSONObject jsonObj = new JSONObject(jsonString);
String sessionId = jsonObj.getString("sessionId")

String requestUrl = "http://localhost:8004/API/Project/Duplicate/?sessionId=" + sessionId + "";

// Define the Request Method.
HttpPost requstMethod = new HttpPost(requestUrl);

// Define the Request Body.
StringEntity input =
	new StringEntity(
		 "{"
		+ "\"sourceProjectId\": \"c37a6684-af41-49f7-bfba-8da6fcf91680\","
		+ "\"projectName\": \"ProjectZ\","
		+ "\"tenantId\": null,"
		+ "\"privilegeOption\": \"copy\","
		+ "\"treatNullTenantIdAsNoTenant\": true"
		+ "}"
	);
input.setContentType("application/json");
requstMethod.setEntity(input);
HttpResponse response = 
	httpClient.execute(requstMethod);

if(response.getStatusLine().getStatusCode() == 200)
{
	System.out.println("Success");
}
// The Dundas.BI.WebApi.Models.ProjectData
// object representing the duplicated
// project, or an error code in case of
// operation failure.
String json = EntityUtils.toString(response.getEntity());
		
var baseUrl = 'http://localhost:8005';
var logonOptions =
{
	accountName: 'admin',
	password: '1234',
	cultureName: 'en-us',
	deleteOtherSessions: false,
	isWindowsLogOn: false
};
$.ajax({
	type: 'POST',
	url: baseUrl + '/Api/LogOn/',
	data: logonOptions,
	success: function(logOnResultData) { 
		var sessionId = logOnResultData.sessionId; 

		var dataObject =
			{			
			    "sourceProjectId": "c37a6684-af41-49f7-bfba-8da6fcf91680",
			    "projectName": "ProjectZ",
			    "tenantId": null,
			    "privilegeOption": "copy",
			    "treatNullTenantIdAsNoTenant": true
			
			};

		$.ajax({
			type: "POST",
			url: baseUrl + "/API/Project/Duplicate/?sessionId=" + sessionId + "",
			data: dataObject,
			success: function(data) { 
				 // data = The Dundas.BI.WebApi.Models
				 // ProjectData object representing the
				 // duplicated project, or an error code in
				 // case of operation failure.

			},
			error: function(data) { alert('failed' + data); }
		});
	}
});