public override void ClientToServer(WfClientResourceDescriptor client, ref WfResourceDescriptor server)
 {
     if (server == null)
     {
         server = new WfDepartmentResourceDescriptor((IOrganization)((WfClientDepartmentResourceDescriptor)client).Department.ToOguObject());
     }
     else
     {
         ((WfDepartmentResourceDescriptor)server).Department = (IOrganization)((WfClientDepartmentResourceDescriptor)client).Department.ToOguObject();
     }
 }
コード例 #2
0
        public void DispatchStartBranchProcessTaskTest()
        {
            IWfProcessDescriptor processDesp = CreateProcessWithAutoMaintainProperty();

            IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp);

            MoveToExecutor(process);

            process = WfRuntime.GetProcessByProcessID(process.ID);
            IWfActivity ownerActivity = process.CurrentActivity;

            Console.WriteLine("OwnerActivityID: {0}", ownerActivity.ID);

            //在Template设置资源为一个组织,用于后续分发分支流程的测试
            IWfBranchProcessTemplateDescriptor template = ownerActivity.Descriptor.BranchProcessTemplates[0];

            IUser userInTemplate = template.Resources.ToUsers().FirstOrDefault();

            WfDepartmentResourceDescriptor deptResourceDesp = new WfDepartmentResourceDescriptor(userInTemplate.Parent);

            template.Resources.Clear();
            template.Resources.Add(deptResourceDesp);

            SysTaskAdapter.Instance.ClearAll();

            SysTaskCommon.ExecuteAndAssertTask(DispatchStartBranchProcessTask.SendTask(ownerActivity.ID, template, true));

            WfRuntime.ClearCache();

            process = WfRuntime.GetProcessByProcessID(process.ID);

            int startedTaskCount = (int)WfServiceInvoker.InvokeContext["returnValue"];

            Console.WriteLine("Started Branch Task Count: {0}", startedTaskCount);

            Assert.IsTrue(startedTaskCount > 0);

            int executedTaskCount = SysTaskCommon.ExecuteAllTasks();

            Assert.AreEqual(startedTaskCount, executedTaskCount);

            WfRuntime.ClearCache();

            process = WfRuntime.GetProcessByProcessID(process.ID);

            Assert.AreEqual(WfProcessStatus.Running, process.Status);
            Assert.IsTrue(process.CurrentActivity.BranchProcessGroups.Count > 0);

            Assert.AreEqual(startedTaskCount - 1, process.CurrentActivity.BranchProcessGroups[0].Branches.Count);
        }
コード例 #3
0
        public void WfDepartmentResourceDescriptorConveterTest()
        {
            WfConverterHelper.RegisterConverters();

            IUser user = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object;

            IOrganization orga = user.Parent;
            WfDepartmentResourceDescriptor deptResuDesp = new WfDepartmentResourceDescriptor(orga);

            string result = JSONSerializerExecute.Serialize(deptResuDesp);

            Console.WriteLine(result);

            WfDepartmentResourceDescriptor deserializedDeptDesp = JSONSerializerExecute.Deserialize <WfDepartmentResourceDescriptor>(result);

            string reSerialized = JSONSerializerExecute.Serialize(deserializedDeptDesp);

            Assert.AreEqual(result, reSerialized);

            ResourceConverterTest(deptResuDesp);
        }
コード例 #4
0
        public void BuildStartBranchProcessTaskProcessTest()
        {
            IWfProcessDescriptor processDesp = CreateProcessWithAutoMaintainProperty();

            IWfProcess process = WfProcessTestCommon.StartupProcess(processDesp);

            MoveToExecutor(process);

            process = WfRuntime.GetProcessByProcessID(process.ID);
            IWfActivity ownerActivity = process.CurrentActivity;

            Console.WriteLine("OwnerActivityID: {0}", ownerActivity.ID);

            //在Template设置资源为一个组织,用于后续分发分支流程的测试
            IWfBranchProcessTemplateDescriptor template = ownerActivity.Descriptor.BranchProcessTemplates[0];

            IUser userInTemplate = template.Resources.ToUsers().FirstOrDefault();

            WfDepartmentResourceDescriptor deptResourceDesp = new WfDepartmentResourceDescriptor(userInTemplate.Parent);

            template.Resources.Clear();
            template.Resources.Add(deptResourceDesp);

            SysTaskAdapter.Instance.ClearAll();

            StartBranchProcessSysTaskProcessBuilder builder = new StartBranchProcessSysTaskProcessBuilder(ownerActivity.ID, template, true);

            SysTaskProcess sysTaskProcess = builder.Build();

            SysTaskProcessRuntime.ClearCache();

            sysTaskProcess = SysTaskProcessRuntime.GetProcessByID(sysTaskProcess.ID);

            Console.WriteLine("SysTaskProcess ID: {0}", sysTaskProcess.ID);
            Console.WriteLine("SysTaskProcess Activities: {0}", sysTaskProcess.Activities.Count);

            Assert.AreEqual(template.Resources.ToUsers().Count + 1, sysTaskProcess.Activities.Count);
        }
コード例 #5
0
        public void SimpleProcessDescriptorWithDeptResSerializeTest()
        {
            WfConverterHelper.RegisterConverters();

            WfProcessDescriptor processDesp = (WfProcessDescriptor)WfProcessTestCommon.CreateSimpleProcessDescriptor();

            IUser         user = (IUser)OguObjectSettings.GetConfig().Objects["requestor"].Object;
            IOrganization orga = user.Parent;
            WfDepartmentResourceDescriptor deptResuDesp = new WfDepartmentResourceDescriptor(orga);

            processDesp.InitialActivity.Resources.Add(deptResuDesp);

            string result = JSONSerializerExecute.Serialize(processDesp);

            processDesp = JSONSerializerExecute.Deserialize <WfProcessDescriptor>(result);

            XElementFormatter formatter = new XElementFormatter();

            XElement root = formatter.Serialize(processDesp);

            Console.WriteLine(root.ToString());

            IWfProcessDescriptor clonedProcessDesp = (IWfProcessDescriptor)formatter.Deserialize(root);
        }