/// <summary> /// Activate or suspend a given process instance. /// Activate or suspend process instances with the given process definition id. /// Activate or suspend process instances with the given process definition key. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var pi9 = camundaCl.ProcessInstance().Id("a8a4755f-78b2-11e5-878f-40a8f0a54b22").Suspended(false).Suspend(); /// var pi10 = camundaCl.ProcessInstance().ProcessDefinitionKey("invoice").Suspended(false).Suspend(); /// var pi11 = camundaCl.ProcessInstance().ProcessDefinitionId("invoice:1:54302a7a-7736-11e5-bc04-40a8f0a54b22").Suspended(true).Suspend(); /// </code> /// </example> /// <returns>noContentStatus</returns> public NoContentStatus Suspend() { EnsureHelper.NotNull("Suspended", this.model.suspended); object obj; var request = new RestRequest(); request.Resource = "/process-instance/suspended"; if (this.model.id != null) { request.Resource = "/process-instance/" + this.model.id + "/suspended"; obj = new { this.model.suspended }; } else if (this.model.processDefinitionId == null) { EnsureHelper.NotNull("processDefinitionKey", this.model.processDefinitionKey); obj = new { this.model.processDefinitionKey, this.model.suspended }; } else { EnsureHelper.NotNull("processDefinitionId", this.model.processDefinitionId); obj = new { this.model.processDefinitionId, this.model.suspended }; } request.Method = Method.PUT; string output = JsonConvert.SerializeObject(obj); request.AddParameter("application/json", output, ParameterType.RequestBody); var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
/// <summary> Instantiates a given process definition. /// </summary> /// <param name="variables">A JSON object containing the variables the process is to be initialized with.</param> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// invoice.CommunicationRootObject d = new invoice.CommunicationRootObject() { comment = new invoice.Comment() { value = "test" }, DeptHead = new invoice.DeptHead() { value = "salajlan" }, approver = new invoice.Approver() { value = "basim"} }; /// var pd5 = camundaCl.ProcessDefinition().Key("invoice").BusinessKey("hi").start<invoice.CommunicationRootObject>(d); /// </code> /// </example> public processInstanceModel Start <T>(T variables) { EnsureHelper.NotNull("processDefinitionVariables", variables); var request = new RestRequest(); if (this.model.id != null) { request.Resource = "/process-definition/" + this.model.id + "/start"; } else { EnsureHelper.NotNull("processDefiniftionKey", this.model.key); request.Resource = "/process-definition/key/" + this.model.key + "/start"; } request.Method = Method.POST; object obj = new { variables, this.model.businessKey, this.model.caseInstanceId }; string output = JsonConvert.SerializeObject(obj, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); request.AddParameter("application/json", output, ParameterType.RequestBody); return(client.Execute <processInstanceModel>(request)); }
/// <summary> Retrieves a single group. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var gr9 = camundaCl.group().Id("test").singleResult(); /// </code> /// </example> public GroupModel singleResult() { EnsureHelper.NotNull("GroupId", this.model.id); var request = new RestRequest(); request.Resource = "/group/" + this.model.id; return(this.SingleResult <GroupModel>(request)); }
/// <summary> Retrieves a single task /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var tsk13 = camundaCl.Task().Id("37ccd7fe-78c5-11e5-beb3-40a8f0a54b22").singleResult(); /// </code> /// </example> public TaskModel SingleResult() { EnsureHelper.NotNull("Id", this.model.id); var request = new RestRequest(); request.Resource = "/task/" + this.model.id; return(this.SingleResult <TaskModel>(request)); }
/// <summary> /// Retrieves an Activity Instance (Tree) for a given process instance. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var pi12 = camundaCl.ProcessInstance().Id("14cc53f0-8067-11e5-ac78-40a8f0a54b22").ActivityInstance(); /// </code> /// </example> /// <returns>activityInstance</returns> public ActivityInstanceModel ActivityInstance() { EnsureHelper.NotNull("processInstanceId", this.model.id); var request = new RestRequest(); request.Resource = "/process-instance/" + this.model.id + "/activity-instances"; return(client.Execute <ActivityInstanceModel>(request)); }
/// <summary> Gets the comments for a task. or Retrieves a single task comment by task id and comment id. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var tsk12 = camundaCl.Task().Id("a3d0eeb5-78c4-11e5-beb3-40a8f0a54b22").Comment(); /// </code> /// </example> public List <TaskCommentModel> Comment() { EnsureHelper.NotNull("Id", this.model.id); var request = new RestRequest(); request.Resource = "/task/" + this.model.id + "/comment"; return(this.client.Execute <List <TaskCommentModel> >(request)); }
/// <summary> /// Retrieves a single historic process instance according to the HistoricProcessInstance interface in the engine. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var hi5 = camundaCl.History().ProcessInstance().ProcessInstanceId("09ece517-77ee-11e5-8af1-40a8f0a54b22").singleResult(); /// </code> /// </example> public HistoryProcessInstanceModel singleResult() { EnsureHelper.NotNull("ProcessInctanceId", this.model.processInstanceId); var request = new RestRequest(); request.Resource = "/history/process-instance/" + this.model.processInstanceId; return(this.SingleResult <HistoryProcessInstanceModel>(request)); }
/// <summary> /// Retrieves a single process instance according to the ProcessInstance interface in the engine. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var pi = camundaCl.ProcessInstance().Id("a0efef43-7d51-11e5-beb3-40a8f0a54b22").SingleResult(); /// </code> /// </example> public processInstanceModel SingleResult() { EnsureHelper.NotNull("ProcessInstanceId", this.model.id); var request = new RestRequest(); request.Resource = "/process-instance/" + this.model.id; return(base.SingleResult <processInstanceModel>(request)); }
/// <summary> Retrieves a single task comment by task id and comment id. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var tsk10 = camundaCl.Task().Id("a3d0eeb5-78c4-11e5-beb3-40a8f0a54b22").Comment("d7a2ea89-7cae-11e5-beb3-40a8f0a54b22"); /// </code> /// </example> public TaskCommentModel Comment(string commentId) { EnsureHelper.NotNull("Id", this.model.id); EnsureHelper.NotNull("ComemntId", commentId); var request = new RestRequest(); request.Resource = "/task/" + this.model.id + "/comment/" + commentId; return(this.client.Execute <TaskCommentModel>(request)); }
/// <summary> /// Retrieves a single user's profile. /// </summary> /// <returns>User</returns> public UserModel Profile() { EnsureHelper.NotNull("Id", this.model.id); var request = new RestRequest(); request.Resource = "/user/" + this.model.id + "/profile"; request.Method = Method.GET; return(this.SingleResult <UserModel>(request)); }
/// <summary> Add a member to a group. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var gr6 = camundaCl.group().Id("test").Member("salajlan").create(); /// </code> /// </example> public NoContentStatus Create() { EnsureHelper.NotNull("groupId", this.model.id); EnsureHelper.NotNull("groupMemeber", this.model.member); var request = new RestRequest(); request.Resource = "/group/" + this.model.id + "/members/" + this.model.member; request.Method = Method.PUT; var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
/// <summary> Resets a task's assignee. If successful, the task is not assigned to a user. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var tsk5 = camundaCl.Task().Id("37ccd7fe-78c5-11e5-beb3-40a8f0a54b22").UnClaim(); /// </code> /// </example> public NoContentStatus UnClaim() { EnsureHelper.NotNull("Id", this.model.id); var request = new RestRequest(); request.Resource = "/task/" + this.model.id + "/unclaim"; request.Method = Method.POST; var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
/// <summary> Retrieves the form key for a task /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var tsk5 = camundaCl.Task().Id("37ccd7fe-78c5-11e5-beb3-40a8f0a54b22").formKey(); /// </code> /// </example> public TaskFormKeyModel formKey() { EnsureHelper.NotNull("Id", this.model.id); var request = new RestRequest(); request.Resource = "/task/" + this.model.id + "/form"; request.Method = Method.GET; var resp = this.client.Execute(request); return(this.client.Execute <TaskFormKeyModel>(request)); }
/// <summary> /// Deletes a user by id. /// </summary> /// <returns>NoContentStatus</returns> public NoContentStatus Delete() { EnsureHelper.NotNull("Id", this.model.id); var request = new RestRequest(); request.Resource = "/user/" + this.model.id; request.Method = Method.DELETE; var resp = this.client.Execute(request); var desc = JsonConvert.DeserializeObject <CamundaBase>(resp.Content); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
/// <summary> Create a new group. /// </summary> /// <param name="data"> a group object to be create</param> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// group m = new group() { id = "testId", name = "testName", type = "testType" }; /// var gr3 = camundaCl.group().create(m); /// </code> /// </example> public NoContentStatus Create(GroupModel data) { EnsureHelper.NotNull("groupData", data); var request = new RestRequest(); request.Resource = "/group/create"; request.Method = Method.POST; string output = JsonConvert.SerializeObject(data); request.AddParameter("application/json", output, ParameterType.RequestBody); var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
/// <summary> Create a comment for a task. /// </summary> /// <param name="comment"> comment to be create</param> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var tsk11 = camundaCl.Task().Id("a3d0eeb5-78c4-11e5-beb3-40a8f0a54b22").Create("test Comment"); /// </code> /// </example> public TaskCommentModel Create(string comment) { EnsureHelper.NotNull("Id", this.model.id); EnsureHelper.NotNull("commentMessage", comment); var request = new RestRequest(); request.Resource = "/task/" + this.model.id + "/comment/create"; request.Method = Method.POST; object obj = new { message = comment }; string output = JsonConvert.SerializeObject(obj); request.AddParameter("application/json", output, ParameterType.RequestBody); return(this.client.Execute <TaskCommentModel>(request)); }
/// <summary> /// Updates or deletes the variables of a process instance. Updates precede deletions. So, if a variable is updated AND deleted, the deletion overrides the update. /// </summary> /// <param name="modifications">A JSON object containing variable key-value pairs. Each key is a variable name and each value a JSON variable value object</param> /// <param name="deletions">An array of String keys of variables to be deleted.</param> /// <example> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var obj = new { amount = new invoice.Amount() { value = "modification" } }; /// var pi6 = camundaCl.ProcessInstance().Id("84b04b82-7cbc-11e5-beb3-40a8f0a54b22").Variables<object>(obj, new string[] { "amount" }); /// <code> /// </code> /// </example> public NoContentStatus Variables <T>(T modifications, string[] deletions) { EnsureHelper.NotNull("ProcessInstanceId", this.model.id); var request = new RestRequest(); request.Resource = "/process-instance/" + this.model.id + "/variables"; request.Method = Method.POST; object obj = new { modifications, deletions }; string output = JsonConvert.SerializeObject(obj); request.AddParameter("application/json", output, ParameterType.RequestBody); var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
/// <summary> /// Sets a variable of a given process instance /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var pi7 = camundaCl.ProcessInstance().Id("84b04b82-7cbc-11e5-beb3-40a8f0a54b22").VarId("DeptHead").Variables<invoice.DeptHead>(new invoice.DeptHead() { value = "salajlan" }); /// </code> /// </example> public NoContentStatus Variables <T>(T variable) { EnsureHelper.NotNull("ProcessInstanceId", this.model.id); EnsureHelper.NotNull("variableData", variable); EnsureHelper.NotNull("varId", this.model.varId); var request = new RestRequest(); request.Resource = "/process-instance/" + this.model.id + "/variables/" + this.model.varId; request.Method = Method.PUT; string output = JsonConvert.SerializeObject(variable); request.AddParameter("application/json", output, ParameterType.RequestBody); var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
/// <summary> Retrieves the BPMN 2.0 XML of this process definition. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var pd3 = camundaCl.ProcessDefinition().Key("invoice").Xml(); /// var pd4 = camundaCl.ProcessDefinition().Id("invoice:1:54302a7a-7736-11e5-bc04-40a8f0a54b22").Xml(); /// </code> /// </example> public ProcessDefinitionXMLModel Xml() { var request = new RestRequest(); if (this.model.id != null) { request.Resource = "/process-definition/" + this.model.id + "/xml"; } else { EnsureHelper.NotNull("processDefiniftionKey", this.model.key); request.Resource = "/process-definition/key/" + this.model.key + "/xml"; } return(client.Execute <ProcessDefinitionXMLModel>(request)); }
/// <summary> Retrieves a single process definition according to the ProcessDefinition interface in the engine. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var pd7 = camundaCl.ProcessDefinition().Key("invoice").singleResult(); /// </code> /// </example> public ProcessDefinitionModel singleResult() { var request = new RestRequest(); if (this.model.id != null) { request.Resource = "/process-definition/" + this.model.id; } else { EnsureHelper.NotNull("processDefiniftionKey", this.model.key); request.Resource = "/process-definition/key/" + this.model.key; } return(this.SingleResult <ProcessDefinitionModel>(request)); }
/// <summary> Resolve a task and update execution variables. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var obj = new { amount = new invoice.Amount() { value = "resolve" } }; /// var tsk9 = camundaCl.Task().Id("c4d3d6e8-78b1-11e5-a68d-40a8f0a54b22").Resolve(obj); /// </code> /// </example> public NoContentStatus Resolve(object variables) { EnsureHelper.NotNull("Id", this.model.id); var request = new RestRequest(); request.Method = Method.POST; request.Resource = "/task/" + this.model.id + "/resolve"; object obj = new { variables }; string output = JsonConvert.SerializeObject(obj); request.AddParameter("application/json", output, ParameterType.RequestBody); var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
public NoContentStatus Update(UserModel updatedData) { EnsureHelper.NotNull("UserId", this.model.id); EnsureHelper.NotNull("UserData", updatedData); var request = new RestRequest(); request.Resource = "/user/" + this.model.id + "/profile"; request.Method = Method.PUT; string output = JsonConvert.SerializeObject(updatedData); request.AddParameter("application/json", output, ParameterType.RequestBody); var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
/// <summary> /// Create a new user. /// </summary> /// <param name="userData"> user data to create </param> /// <param name="password"> pass </param> /// <returns>NoContentStatus</returns> public NoContentStatus Create(UserModel userData, string password) { EnsureHelper.NotNull("UserData", userData); EnsureHelper.NotNull("password", password); var request = new RestRequest(); request.Resource = "/user/create"; request.Method = Method.POST; object obj = new { profile = userData, credentials = new { password = password } }; string output = JsonConvert.SerializeObject(obj); request.AddParameter("application/json", output, ParameterType.RequestBody); var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
/// <summary> Deletes a group by id. or Removes a member from a group. /// </summary> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var gr4 = camundaCl.group().Id("test").Member("salajlan").delete(); /// var gr7 = camundaCl.group().Id("test").delete(); /// </code> /// </example> public NoContentStatus Delete() { EnsureHelper.NotNull("GroupId", this.model.id); var request = new RestRequest(); if (this.model.member != null) { request.Resource = "/group/" + this.model.id + "/members/" + this.model.member; } else { request.Resource = "/group/" + this.model.id; } request.Method = Method.DELETE; var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
/// <summary> /// Retrieves a variables of a given process instance or given Variable Id /// </summary> /// <example> retrive by variables by process instance Id /// <code> /// /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var pi5 = camundaCl.ProcessInstance().Id("84b04b82-7cbc-11e5-beb3-40a8f0a54b22").Variables<invoice.InvoiceRootObject>(); /// /// </code> /// </example> /// <example> retrive by variable by process instance Id and variable Id /// <code> /// /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var pi4 = camundaCl.ProcessInstance().Id("84b04b82-7cbc-11e5-beb3-40a8f0a54b22").VarId("amount").Variables<invoice.amount>(); /// /// </code> /// </example> public T Variables <T>() where T : new() { EnsureHelper.NotNull("ProcessInstanceId", this.model.id); var request = new RestRequest(); if (this.model.varId != null) { request.Resource = "/process-instance/" + this.model.id + "/variables/" + this.model.varId; } else { request.Resource = "/process-instance/" + this.model.id + "/variables"; } string output = JsonConvert.SerializeObject(this.model.deserializeValues); request.AddParameter("application/json", output, ParameterType.RequestBody); return(client.Execute <T>(request)); }
/// <summary>Deletes a running process instance. or Deletes a variable of a given process instance. /// </summary> /// <example> Deletes a running process instance /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var pi3 = camundaCl.ProcessInstance().Id("182112c8-78c1-11e5-beb3-40a8f0a54b22").Delete(); /// </code> /// </example> /// <example> Deletes a variable of a given process instance. /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var pi3 = camundaCl.ProcessInstance().Id("182112c8-78c1-11e5-beb3-40a8f0a54b22").VarId("test varriable").Delete(); /// </code> /// </example> public NoContentStatus Delete() { EnsureHelper.NotNull("ProcessInstanceId", this.model.id); var request = new RestRequest(); if (this.model.varId != null) { request.Resource = "/process-instance/" + this.model.id + "/variables/" + this.model.varId; } else { request.Resource = "/process-instance/" + this.model.id; } request.Method = Method.DELETE; var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
/// <summary> Activate or suspend a given process definition /// </summary> /// <param name="data"> processDefinitionSuspend object</param> /// <example> /// <code> /// var camundaCl = new camundaRestClient("http://localhost:8080/engine-rest"); /// var pr = new processDefinitionSuspend(){ suspended = false, includeProcessInstances = false, executionDate = DateTime.Now }; /// var pd6 = camundaCl.ProcessDefinition().Key("invoice").Suspend(pr); /// </code> /// </example> public NoContentStatus Suspend(ProcessDefinitionSuspendModel data) { EnsureHelper.NotNull("processDefinitionSuspend data", data); var request = new RestRequest(); if (this.model.id != null) { request.Resource = "/process-definition/" + this.model.id + "/suspended"; } else { EnsureHelper.NotNull("processDefiniftionKey", this.model.key); request.Resource = "/process-definition/key/" + this.model.key + "/suspended"; } request.Method = Method.PUT; string output = JsonConvert.SerializeObject(data); request.AddParameter("application/json", output, ParameterType.RequestBody); var resp = this.client.Execute(request); return(ReturnHelper.NoContentReturn(resp.Content, resp.StatusCode)); }
public void Authenticator(ICredentials credentials) { EnsureHelper.NotNull("credentials", credentials); this._client.Authenticator = new NtlmAuthenticator(credentials); }