protected override void Execute() { ActivityInstanceData activityInstance = ActivityInstance; List <String> items = new List <string>(); TridionActivityDefinitionData activitydefinition = (TridionActivityDefinitionData)CoreServiceClient.Read(ActivityInstance.ActivityDefinition.IdRef, readoption); ProcessDefinitionData processdefinition = (ProcessDefinitionData)CoreServiceClient.Read(activitydefinition.ProcessDefinition.IdRef, readoption); Logger.Write(string.Format("ActivityInstance.Title : {0}", ActivityInstance.Title), "Workflow", LoggingCategory.General, TraceEventType.Information); foreach (WorkItemData wid in activityInstance.WorkItems) { items.Add(wid.Subject.Title); } try { SmtpClient client = Utility.SMTPClientConfiguration(); MailMessage mail = Utility.WorkflowMailMessageConfiguration(ActivityInstance.Title.ToString(), items, null); client.Send(mail); Logger.Write(string.Format("Mail : {0}", mail.Body.ToString()), "Workflow", LoggingCategory.General, TraceEventType.Information); Logger.Write(string.Format("ActivityInstance.Title : {0}", "Mail Sent"), "Workflow", LoggingCategory.General, TraceEventType.Information); } catch (Exception ex) { Logger.Write(string.Format("ActivityInstance.Title : {0}", ex.Message.ToString()), "Workflow", LoggingCategory.General, TraceEventType.Information); } finally { CoreServiceClient.FinishActivity(ActivityInstance.Id, new ActivityFinishData { Message = "Mail Sent to Target Audience, Finished Activity" }, null); Logger.Write(string.Format("Message: {0}", "Auto Approved and Send for Next Activity , Finished Activity"), "Workflow", LoggingCategory.General, TraceEventType.Information); } }
/// <summary> /// Reload the <see cref="TridionActivityDefinition" /> with the specified <see cref="T:Tridion.ContentManager.CoreService.Client.TridionActivityDefinitionData" /> /// </summary> /// <param name="tridionActivityDefinitionData"><see cref="T:Tridion.ContentManager.CoreService.Client.TridionActivityDefinitionData" /></param> protected void Reload(TridionActivityDefinitionData tridionActivityDefinitionData) { if (tridionActivityDefinitionData == null) throw new ArgumentNullException("tridionActivityDefinitionData"); mTridionActivityDefinitionData = tridionActivityDefinitionData; base.Reload(tridionActivityDefinitionData); }
/// <summary> /// Initializes a new instance of the <see cref="TridionActivityDefinition"/> class. /// </summary> /// <param name="client"><see cref="T:TcmCoreService.Client" /></param> /// <param name="tridionActivityDefinitionData"><see cref="T:Tridion.ContentManager.CoreService.Client.TridionActivityDefinitionData" /></param> protected TridionActivityDefinition(Client client, TridionActivityDefinitionData tridionActivityDefinitionData) : base(client, tridionActivityDefinitionData) { if (tridionActivityDefinitionData == null) throw new ArgumentNullException("tridionActivityDefinitionData"); mTridionActivityDefinitionData = tridionActivityDefinitionData; }
/// <summary> /// Initializes a new instance of the <see cref="TridionActivityDefinition"/> class. /// </summary> /// <param name="client"><see cref="T:TcmCoreService.Client" /></param> /// <param name="tridionActivityDefinitionData"><see cref="T:Tridion.ContentManager.CoreService.Client.TridionActivityDefinitionData" /></param> protected TridionActivityDefinition(Client client, TridionActivityDefinitionData tridionActivityDefinitionData) : base(client, tridionActivityDefinitionData) { if (tridionActivityDefinitionData == null) { throw new ArgumentNullException("tridionActivityDefinitionData"); } mTridionActivityDefinitionData = tridionActivityDefinitionData; }
/// <summary> /// Reload the <see cref="TridionActivityDefinition" /> with the specified <see cref="T:Tridion.ContentManager.CoreService.Client.TridionActivityDefinitionData" /> /// </summary> /// <param name="tridionActivityDefinitionData"><see cref="T:Tridion.ContentManager.CoreService.Client.TridionActivityDefinitionData" /></param> protected void Reload(TridionActivityDefinitionData tridionActivityDefinitionData) { if (tridionActivityDefinitionData == null) { throw new ArgumentNullException("tridionActivityDefinitionData"); } mTridionActivityDefinitionData = tridionActivityDefinitionData; base.Reload(tridionActivityDefinitionData); }
private ActivityInstanceData GetFirstManualActivity() { IEnumerable <ActivityInstanceData> activityInstances = ProcessInstance.Activities.OfType <ActivityInstanceData>().OrderBy(o => o.StartDate); return(activityInstances.First(a => { TridionActivityDefinitionData activityDefinition = (TridionActivityDefinitionData)CoreServiceClient.Read(a.ActivityDefinition.IdRef, null); return string.IsNullOrEmpty(activityDefinition.Script); })); }
public string ViewWorkflow(GetParameter selectedItem) { ActivityInstanceData activityInstance = Client.Read(selectedItem.ActivityInstanceId, new ReadOptions()) as ActivityInstanceData; if (activityInstance != null) { string currentActivityId = activityInstance.ActivityDefinition.IdRef; ProcessInstanceData processInstance = Client.Read(activityInstance.Process.IdRef, new ReadOptions()) as ProcessInstanceData; if (processInstance != null) { ProcessDefinitionData processDefinition = Client.Read(processInstance.ProcessDefinition.IdRef, new ReadOptions()) as ProcessDefinitionData; ProcessDefinitationDataModel processDefinitationDataModel = new ProcessDefinitationDataModel(); if (processDefinition != null) { processDefinitationDataModel.workflowTitle = processDefinition.Title; processDefinitationDataModel.actions = new List <ProcessInstancesDataModel>(); List <ActivityDefinitionData> listOfActivities = processDefinition.ActivityDefinitions.ToList(); ActivitySequence startActivitySequence = new ActivitySequence { sequenceNumber = 1 }; ProcessInstancesDataModel startProcessInstancesDataModel = new ProcessInstancesDataModel { actionTitle = "", actionType = "Start", actionSequence = 0, actionTypeId = 1, nextSequences = new List <ActivitySequence> { startActivitySequence } }; processDefinitationDataModel.actions.Add(startProcessInstancesDataModel); foreach (ActivityDefinitionData activityDefinitionData in processDefinition.ActivityDefinitions) { ProcessInstancesDataModel processInstancesDataModel = new ProcessInstancesDataModel { actionTitle = activityDefinitionData.Title, isActive = (activityDefinitionData.Id.Equals(currentActivityId)) ? true : false, actionSequence = processDefinition.ActivityDefinitions.ToList().IndexOf(activityDefinitionData) + 1 }; TridionActivityDefinitionData tridionActivityDefinitionData = Client.Read(activityDefinitionData.Id, new ReadOptions()) as TridionActivityDefinitionData; processInstancesDataModel.nextSequences = new List <ActivitySequence>(); if (tridionActivityDefinitionData != null && tridionActivityDefinitionData.Script == "") { if (tridionActivityDefinitionData.NextActivityDefinitions.Count() > 1) { processInstancesDataModel.actionType = "Manual-Decision"; processInstancesDataModel.actionTypeId = 4; foreach (var nextActivity in tridionActivityDefinitionData.NextActivityDefinitions) { foreach (ActivityDefinitionData item in listOfActivities) { if (item.Id.Equals(nextActivity.IdRef)) { int findIndex = listOfActivities.IndexOf(item) + 1; ActivitySequence activitySequence = new ActivitySequence { sequenceNumber = findIndex }; processInstancesDataModel.nextSequences.Add(activitySequence); break; } } } } else { processInstancesDataModel.actionType = "Manual"; processInstancesDataModel.actionTypeId = 3; ActivitySequence activitySequence = new ActivitySequence { sequenceNumber = processInstancesDataModel.actionSequence + 1 }; processInstancesDataModel.nextSequences.Add(activitySequence); } } else { if (tridionActivityDefinitionData != null && tridionActivityDefinitionData.NextActivityDefinitions.Count() > 1) { processInstancesDataModel.actionType = "Automatic-Decision"; processInstancesDataModel.actionTypeId = 6; foreach (var nextActivity in tridionActivityDefinitionData.NextActivityDefinitions) { foreach (ActivityDefinitionData item in listOfActivities) { if (item.Id.Equals(nextActivity.IdRef)) { int findIndex = listOfActivities.IndexOf(item) + 1; ActivitySequence activitySequence = new ActivitySequence { sequenceNumber = findIndex }; processInstancesDataModel.nextSequences.Add(activitySequence); break; } } } } else { processInstancesDataModel.actionType = "Automatic"; processInstancesDataModel.actionTypeId = 5; ActivitySequence activitySequence = new ActivitySequence { sequenceNumber = processInstancesDataModel.actionSequence + 1 }; processInstancesDataModel.nextSequences.Add(activitySequence); } } processDefinitationDataModel.actions.Add(processInstancesDataModel); } ProcessInstancesDataModel sendProcessInstancesDataModel = new ProcessInstancesDataModel { actionTitle = "", actionType = "Stop", actionSequence = listOfActivities.Count() + 1, actionTypeId = 2, nextSequences = new List <ActivitySequence>() }; processDefinitationDataModel.actions.Add(sendProcessInstancesDataModel); } var jsSerializer = new JavaScriptSerializer(); var serializedJson = jsSerializer.Serialize(processDefinitationDataModel); return(serializedJson); } } return(null); }