Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
 }