/// <summary> /// Creates the instance. /// </summary> /// <param name="master">The master.</param> /// <returns></returns> public override object CreateInstance() { CreateAssignmentAndWaitResultActivity retVal = new CreateAssignmentAndWaitResultActivity(); retVal.Name = "createAssignmentAndWait_" + Guid.NewGuid().ToString("N"); retVal.AssignmentProperties = new PropertyValueCollection(); retVal.AssignmentProperties.AddRange(this.AssignmentProperties); retVal.UseRequest = this.UseRequest; if (this.UseRequest) { retVal.RequestProperties = new PropertyValueCollection(); if (this.RequestProperties != null) { retVal.RequestProperties.AddRange(this.RequestProperties); } retVal.RequestedUsers = this.RequestedUsers; } // Copy Properties return(retVal); }
/// <summary> /// Gets the assignment properties. /// </summary> /// <param name="activity">The activity.</param> /// <returns></returns> public static PropertyValueCollection GetAssignmentProperties(object activity) { CreateAssignmentAndWaitResultActivity root = activity as CreateAssignmentAndWaitResultActivity; if (root == null) { return(null); } return(root.AssignmentProperties); }
protected void Page_Load(object sender, EventArgs e) { Response.Redirect("~/Modules/Pages/WorkflowList.aspx"); WorkflowDefinitionEntity en = BusinessManager.InitializeEntity<WorkflowDefinitionEntity>(WorkflowDefinitionEntity.ClassName); SequentialWorkflowActivity item = McWorkflowSerializer.GetObject<SequentialWorkflowActivity>(en.Xaml); CreateAssignmentAndWaitResultActivity act1 = new CreateAssignmentAndWaitResultActivity(); act1.Name = "Guid1"; //act1.Subject =" Subject Here " ; //a //item.Activities.Add(act1); }
/// <summary> /// Creates the instance. /// </summary> /// <param name="master">The master.</param> /// <returns></returns> public override object CreateInstance() { CreateAssignmentAndWaitResultActivity retVal = new CreateAssignmentAndWaitResultActivity(); retVal.Name = "createAssignmentAndWait_"+ Guid.NewGuid().ToString("N"); retVal.AssignmentProperties = new PropertyValueCollection(); retVal.AssignmentProperties.AddRange(this.AssignmentProperties); retVal.UseRequest = this.UseRequest; if (this.UseRequest) { retVal.RequestProperties = new PropertyValueCollection(); if(this.RequestProperties!=null) retVal.RequestProperties.AddRange(this.RequestProperties); retVal.RequestedUsers = this.RequestedUsers; } // Copy Properties return retVal; }
/// <summary> /// Gets the activity user list. /// </summary> /// <param name="parentActivity">The parent activity.</param> /// <returns></returns> public static int[] GetActivityUserList(object parentActivity) { List <int> retVal = new List <int>(); CompositeActivity compositeActivity = parentActivity as CompositeActivity; if (compositeActivity != null) { foreach (Activity activity in compositeActivity.Activities) { CreateAssignmentAndWaitResultActivity cr = activity as CreateAssignmentAndWaitResultActivity; if (cr != null && cr.AssignmentProperties.Contains(AssignmentEntity.FieldUserId)) { int?userId = cr.AssignmentProperties[AssignmentEntity.FieldUserId] as int?; if (userId.HasValue && !retVal.Contains(userId.Value)) { retVal.Add(userId.Value); } } if (activity is CompositeActivity) { foreach (int userId in GetActivityUserList(activity)) { if (!retVal.Contains(userId)) { retVal.Add(userId); } } } } } return(retVal.ToArray()); }
/// <summary> /// Creates the business process activity info. /// </summary> /// <param name="businessProcess">The business process.</param> /// <param name="scope">The scope.</param> /// <param name="parentActivity">The parent activity.</param> /// <param name="activityInfoItems">The activity info items.</param> private static void CreateBusinessProcessActivityInfo(BusinessProcessInfo businessProcess, WorkflowChangesScope scope, EntityObject[] assignments, CompositeActivity parentActivity, ActivityInfoCollection activityInfoItems) { foreach (Activity activity in parentActivity.Activities) { if (activity is CreateAssignmentAndWaitResultActivity) { CreateAssignmentAndWaitResultActivity asgActivity = (CreateAssignmentAndWaitResultActivity)activity; PropertyValueCollection properties = asgActivity.AssignmentProperties; ActivityInfo activityInfo = new ActivityInfo(); activityInfoItems.Add(activityInfo); activityInfo.Name = activity.Name; activityInfo.Type = ActivityType.Assignment; AssignmentEntity assignment = FindAssignmentByActivityName(assignments, activity.Name); if (assignment != null) { activityInfo.State = (AssignmentState)assignment.State; activityInfo.Subject = assignment.Subject; activityInfo.TimeStatus = (AssignmentTimeStatus?)assignment.TimeStatus; activityInfo.PlanStartDate = assignment.ActualStartDate; activityInfo.PlanFinishDate = assignment.PlanFinishDate; activityInfo.ActualStartDate = assignment.ActualStartDate; activityInfo.ActualFinishDate = assignment.ActualFinishDate; activityInfo.Comment = assignment.Comment; activityInfo.UserId = assignment.UserId; activityInfo.ClosedBy = assignment.ClosedBy; activityInfo.ExecutionResult = (AssignmentExecutionResult?)assignment.ExecutionResult; } else { activityInfo.State = businessProcess.State == BusinessProcessState.Closed? AssignmentState.Closed: AssignmentState.Pending; if (asgActivity.AssignmentProperties.Contains(AssignmentEntity.FieldSubject)) { activityInfo.Subject = (string)asgActivity.AssignmentProperties[AssignmentEntity.FieldSubject]; } if (asgActivity.AssignmentProperties.Contains(AssignmentEntity.FieldUserId)) { activityInfo.UserId = (int?)asgActivity.AssignmentProperties[AssignmentEntity.FieldUserId]; } // Resolve Plan Time //if (activityInfo.State == AssignmentState.Pending && // businessProcess.State == BusinessProcessState.Active && // businessProcess.PlanFinishDate.HasValue) //{ // //CalculatePlanFinishDate(businessProcess, parentActivity, activity, activityInfo); //} //if (activityInfo.PlanStartDate.HasValue && // activityInfo.PlanStartDate.Value < DateTime.Now) // activityInfo.TimeStatus = AssignmentTimeStatus.OverStart; //if (activityInfo.PlanFinishDate.HasValue && // activityInfo.PlanFinishDate.Value < DateTime.Now) // activityInfo.TimeStatus = AssignmentTimeStatus.OverDue; } // 2008-07-07 Added Assignment Properties activityInfo.AssignmentProperties.AddRange(asgActivity.AssignmentProperties); // } else if (activity is BlockActivity) { // Create Block Info ActivityInfo blockInfo = new ActivityInfo(); activityInfoItems.Add(blockInfo); blockInfo.Name = activity.Name; blockInfo.Type = ActivityType.Block; blockInfo.State = businessProcess.State == BusinessProcessState.Closed ? AssignmentState.Closed : AssignmentState.Pending; CreateBusinessProcessActivityInfo(businessProcess, scope, assignments, (BlockActivity)activity, blockInfo.Activities); if (blockInfo.State == AssignmentState.Pending) { if (blockInfo.Activities.Count > 0) { foreach (ActivityInfo childActivitiInfo in blockInfo.Activities) { if (childActivitiInfo.State == AssignmentState.Active) { blockInfo.State = AssignmentState.Active; break; } else if (childActivitiInfo.State == AssignmentState.Closed) { blockInfo.State = AssignmentState.Closed; } } } else { int blockIndex = activityInfoItems.IndexOf(blockInfo); if (blockIndex == 0) { blockInfo.State = AssignmentState.Closed; } else { blockInfo.State = activityInfoItems[blockIndex - 1].State == AssignmentState.Active? AssignmentState.Pending: activityInfoItems[blockIndex - 1].State; } } } if (blockInfo.Activities.Count > 0 && (blockInfo.State == AssignmentState.Active || blockInfo.State == AssignmentState.Closed)) { blockInfo.PlanStartDate = blockInfo.Activities[0].PlanStartDate; blockInfo.PlanFinishDate = blockInfo.Activities[0].PlanFinishDate; } } } }
void btnCreate_Click(object sender, EventArgs e) { //throw new NotImplementedException(); SequentialWorkflowActivity root = this.CurrentContainer.CurrentRootActivity; Activity ac = root.GetActivityByName(CurrentActivity.Name); CreateAssignmentAndWaitResultActivity newAct = new CreateAssignmentAndWaitResultActivity(); newAct.Name = String.Format("test dvs {0}", Guid.NewGuid().ToString("N")); //newAct.Subject = " Subject Here "; if (ac.Parent != null || ac is System.Workflow.ComponentModel.CompositeActivity) { ((System.Workflow.ComponentModel.CompositeActivity)ac).Activities.Add(newAct); } else { root.Activities.Add(newAct); } CurrentContainer.CurrentRootActivity = root; this.CurrentContainer.PerformControls(); }