private void InitializeBranchProcesses(IWfAnchorActivity ownerActivity, WfBranchesTransferParams transferParams) { for (int i = 0; i < transferParams.BranchParams.Count; i++) { WfBranchStartupParams branchParam = (WfBranchStartupParams)transferParams.BranchParams[i]; InitializeBranchProcess(transferParams.Operator, i, branchParam); } }
private WfBranchProcessInfo InitializeBranchProcess(IUser user, int i, WfBranchStartupParams branchParam) { WfBranchProcessInfo processInfo = new WfBranchProcessInfo(CreateBranchProcess(branchParam.Descriptor)); processInfo.OwnerOperation = this; processInfo.ProcessDescriptor = branchParam.Descriptor; processInfo.IsSpecificProcess = branchParam.IsSpecificProcess; processInfo.Sequence = i; processInfo.BranchProcessReceiver.CopyFrom(branchParam.BranchReceiverResource); processInfo.BranchInfoState = State.Added; //注意:~~~~~~ processInfo.Process.ResourceID = this.AnchorActivity.Process.ResourceID; processInfo.Process.OwnerDepartment = branchParam.Department; ((WfProcess)processInfo.Process).EntryInfo = processInfo; ((WfProcess)processInfo.Process).Creator = user; this.Branches.Add(processInfo); return(processInfo); }
/// <summary> /// /// </summary> /// <param name="startupParams"></param> public void Add(WfBranchStartupParams startupParams) { InnerAdd((T)startupParams); }