//[WebInvoke(Method = "PUT", UriTemplate = "/{workflowDefinitionId}/?provider={provider}")] public WorkflowDefinitionViewModel SaveWorkflowDefinition(WorkflowDefinitionViewModel workflowDefinitionViewModel, Guid workflowDefinitionId, string provider) { var request = new RestRequest(this.ServiceUrl + "/{workflowDefinitionId}/?provider={provider}", Method.PUT); request.AddUrlSegment("workflowDefinitionId", workflowDefinitionId.ToString()); request.AddUrlSegment("provider", provider); request.AddParameter("application/json", SerializeObject(workflowDefinitionViewModel), ParameterType.RequestBody); return(ExecuteRequest <WorkflowDefinitionViewModel>(request)); }
private WorkflowDefinitionViewModel CreateWorkflowDefinitionViewModel(WorkflowDefinitionRecord workflowDefinitionRecord) { if (workflowDefinitionRecord == null) { throw new ArgumentNullException("workflowDefinitionRecord"); } var workflowDefinitionModel = new WorkflowDefinitionViewModel { Id = workflowDefinitionRecord.Id, Name = workflowDefinitionRecord.Name }; dynamic workflow = new JObject(); workflow.Activities = new JArray(workflowDefinitionRecord.ActivityRecords.Select(x => { dynamic activity = new JObject(); activity.Name = x.Name; activity.Id = x.Id; activity.ClientId = x.Name + "_" + x.Id; activity.Left = x.X; activity.Top = x.Y; activity.Start = x.Start; activity.State = FormParametersHelper.FromJsonString(x.State); return(activity); })); workflow.Connections = new JArray(workflowDefinitionRecord.TransitionRecords.Select(x => { dynamic connection = new JObject(); connection.Id = x.Id; connection.SourceId = x.SourceActivityRecord.Name + "_" + x.SourceActivityRecord.Id; connection.TargetId = x.DestinationActivityRecord.Name + "_" + x.DestinationActivityRecord.Id; connection.SourceEndpoint = x.SourceEndpoint; return(connection); })); workflowDefinitionModel.JsonData = FormParametersHelper.ToJsonString(workflow); return(workflowDefinitionModel); }