Exemplo n.º 1
0
        private void MoveToOneBranchProcessFirstActivity(WfBranchProcessInfo processInfo)
        {
            WfTransferParams initialTransferParams =
                      new WfTransferParams(processInfo.ProcessDescriptor.InitialActivity);

			((WfActivityDescriptor)processInfo.ProcessDescriptor.InitialActivity).LevelName = processInfo.OwnerOperation.AnchorActivity.Descriptor.LevelName;

            initialTransferParams.Receivers.CopyFrom(processInfo.BranchProcessReceiver);

			WfProcess process = ((WfProcess)processInfo.Process);
			process.MoveTo(initialTransferParams);
        }
Exemplo n.º 2
0
		/// <summary>
		/// 
		/// </summary>
		/// <param name="info"></param>
		/// <param name="context"></param>
		protected WfProcess(SerializationInfo info, StreamingContext context)
		{
			this._ID = info.GetString("ID");
			this._ResourceID = info.GetString("ResourceID");
			this._Activities = (WfActivityCollection)info.GetValue("Activities", typeof(WfActivityCollection));
			this._Context = (WfProcessContext)info.GetValue("Context", typeof(WfProcessContext));

			this._Status = (WfProcessStatus)info.GetValue("Status", typeof(WfProcessStatus));
			this._StartTime = info.GetDateTime("StartTime");
			this._EndTime = info.GetDateTime("EndTime");
			this._Creator = (IUser)info.GetValue("Creator", typeof(IUser));
			this._OwnerDepartment = (IOrganization)info.GetValue("OwnerDepartment", typeof(IOrganization));

			this._EntryInfo = (WfBranchProcessInfo)info.GetValue("EntryInfo", typeof(WfBranchProcessInfo));
			this._LoadingType = (DataLoadingType)info.GetValue("LoadingType", typeof(DataLoadingType));

			WfProcessContextCache.Instance[this._ID] = this;
		}
Exemplo n.º 3
0
        public void DoNextBranchProcess(WfBranchProcessInfo nextBranchProcessInfo)
        {
			lock (this)
			{
				CreateBranchProcess(nextBranchProcessInfo.ProcessDescriptor);

				MoveToOneBranchProcessFirstActivity(nextBranchProcessInfo);
			}
        }
Exemplo n.º 4
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;
        }