public static void CreateAutomation(SoapClient soapClient, string iEmailSendDefinitionName, string iEmailSendDefinitionCustomerKey, string iEmailSendDefinitionObjectID) { Automation automation = new Automation(); automation.Name = "SOAPAPI Test2_" + Guid.NewGuid().ToString(); // CustomerKey can be any string value, GUID is only used for example purposes automation.CustomerKey = Guid.NewGuid().ToString(); automation.Description = "SOAP API Created Example"; automation.AutomationType = "scheduled"; AutomationActivity activityOne = new AutomationActivity(); activityOne = new AutomationActivity(); // This is the ObjectID of the Definition Object activityOne.ObjectID = iEmailSendDefinitionObjectID; // This is the Name of the Definition Object activityOne.Name = iEmailSendDefinitionName; activityOne.Definition = new APIObject(); EmailSendDefinition activityOneDefinition = new EmailSendDefinition(); // Again this is the ObjectID of the Definition Object activityOneDefinition.ObjectID = iEmailSendDefinitionObjectID; // Again this is the Name of the Definition Object activityOneDefinition.Name = iEmailSendDefinitionName; activityOneDefinition.CustomerKey = iEmailSendDefinitionCustomerKey; activityOne.ActivityObject = activityOneDefinition; AutomationTask taskOne = new AutomationTask(); taskOne.Name = "Task 1"; taskOne.Activities = new AutomationActivity[] { activityOne }; automation.AutomationTasks = new AutomationTask[] { taskOne }; string RequestID = String.Empty; string OverallStatus = String.Empty; CreateResult[] createResults = soapClient.Create(new CreateOptions(), new APIObject[] { automation }, out RequestID, out OverallStatus); Console.WriteLine("Status: " + OverallStatus); foreach (CreateResult cr in createResults) { Console.WriteLine("NewObjectID: " + cr.NewObjectID); Console.WriteLine("StatusCode: " + cr.StatusCode); Console.WriteLine("ErrorCode: " + cr.ErrorCode); Console.WriteLine("StatusMessage: " + cr.StatusMessage); } }
public static WorkflowApplication GetWorkflowApplication(AutomationActivity activity) { var workflowApplication = new WorkflowApplication(activity) { Completed = delegate(WorkflowApplicationCompletedEventArgs e) { switch (e.CompletionState) { case ActivityInstanceState.Faulted: //Logger.GetInstance().Log().Error("workflow " + // scriptGuid + // " stopped! Error Message:\n" // + // e.TerminationException. // GetType().FullName + // "\n" // + // e.TerminationException. // Message); //Status = "Terminated"; break; case ActivityInstanceState.Canceled: //Logger.GetInstance().Log().Warn("workflow " + scriptGuid + // " Cancel."); //Status = "Canceled"; break; //Logger.GetInstance().Log().Info("workflow " + scriptGuid + // " Completed."); //Status = "Completed"; } }, Aborted = delegate { //Logger.GetInstance().Log().Error("workflow " + // scriptGuid // + " aborted! Error Message:\n" // + e.Reason.GetType().FullName + "\n" + // e.Reason.Message); //Status = "Aborted"; } }; return(workflowApplication); }
public WorkflowApplication GetWorkflowApplication(AutomationActivity activity) { var workflowApplication = new WorkflowApplication(activity) { Completed = delegate(WorkflowApplicationCompletedEventArgs e) { switch (e.CompletionState) { case ActivityInstanceState.Faulted: Log.Error("workflow [" + activity.Id + "] " + activity.DisplayName + " stopped! Error Message:\n" + e.TerminationException.GetType().FullName + "\n" + e.TerminationException.Message + "\n" + e.TerminationException.StackTrace); Status = "Terminated"; ClientInstancesManager.GetInstance().GetComputer(ClientId).Status = "Ready"; break; case ActivityInstanceState.Canceled: Log.Error("workflow [" + activity.Id + "] " + activity.DisplayName + " Cancel."); Status = "Canceled"; ClientInstancesManager.GetInstance().GetComputer(ClientId).Status = "Ready"; break; default: Log.Info("workflow [" + activity.Id + "] " + activity.DisplayName + " Completed."); Status = "Completed"; ClientInstancesManager.GetInstance().GetComputer(ClientId).Status = "Ready"; break; } }, Aborted = delegate(WorkflowApplicationAbortedEventArgs e) { Log.Error(" aborted! Error Message:\n" + e.Reason.GetType().FullName + "\n" + e.Reason.Message); Status = "Aborted"; ClientInstancesManager.GetInstance().GetComputer(ClientId).Status = "Ready"; } }; return(workflowApplication); }