コード例 #1
0
        /// <summary>
        /// 创建带分支流程的模版。为了测试XElement序列化,里面需要包含角色、资源、条件等内容
        /// </summary>
        /// <returns></returns>
        public static IWfProcessDescriptor CreateProcessDescriptorForXElementSerialization()
        {
            IWfProcessDescriptor processDesp = CreateSimpleProcessDescriptorWithBranchTemplate();

            IWfActivityDescriptor normalActivity = processDesp.Activities["NormalActivity"];

            string roleDesp = RolesDefineConfig.GetConfig().RolesDefineCollection["testRole"].Roles;

            OguRole role = new OguRole(roleDesp);

            WfRoleResourceDescriptor roleResource = new WfRoleResourceDescriptor(role);

            normalActivity.EnterEventReceivers.Add(roleResource);

            WfDynamicResourceDescriptor dynResource = new WfDynamicResourceDescriptor();

            dynResource.Condition.Expression = "Leader";
            normalActivity.LeaveEventReceivers.Add(dynResource);

            processDesp.CancelEventReceivers.Add(dynResource);

            WfRelativeLinkDescriptor relLink = new WfRelativeLinkDescriptor("TestUrl");

            relLink.Category = "Test";
            relLink.Url      = "http://localhost/www.baidu.com";

            processDesp.RelativeLinks.Add(relLink);

            return(processDesp);
        }
コード例 #2
0
        internal static void FillInternalDynamicRoleUsers(string roleName, OguDataCollection <IUser> users)
        {
            SOARoleContext context = SOARoleContext.Current;

            WfDynamicResourceDescriptor dynResource = new WfDynamicResourceDescriptor();

            if (context != null)
            {
                dynResource.SetProcessInstance(context.Process);
            }

            dynResource.Condition.Expression = roleName;

            dynResource.FillUsers(users);
        }
コード例 #3
0
        public void WfEmptyUserDynamicResourceDescriptorTest()
        {
            WfRuntime.ProcessContext.EvaluateDynamicResourceCondition += new Expression.CalculateUserFunction(ProcessContext_EvaluateDynamicResourceCondition);

            WfResourceDescriptorCollection resources = new WfResourceDescriptorCollection();

            WfDynamicResourceDescriptor resource = new WfDynamicResourceDescriptor();

            resource.Condition.Expression = "EmptyUser";

            resources.Add(resource);

            OguDataCollection <IUser> users = resources.ToUsers();

            Assert.AreEqual(0, users.Count);
        }
コード例 #4
0
        public void WfDynamicResourceDescriptorTest()
        {
            WfRuntime.ProcessContext.EvaluateDynamicResourceCondition += new Expression.CalculateUserFunction(ProcessContext_EvaluateDynamicResourceCondition);

            WfResourceDescriptorCollection resources = new WfResourceDescriptorCollection();

            WfDynamicResourceDescriptor resource = new WfDynamicResourceDescriptor();

            resource.Condition.Expression = "Requestor";

            resources.Add(resource);

            OguDataCollection <IUser> users = resources.ToUsers();

            users.ForEach(u => Console.WriteLine(u.DisplayName));
        }
コード例 #5
0
        public override void ServerToClient(WfResourceDescriptor server, ref WfClientResourceDescriptor client)
        {
            server.NullCheck("server");

            WfDynamicResourceDescriptor serverDynRes = (WfDynamicResourceDescriptor)server;

            if (client == null)
            {
                client = new WfClientDynamicResourceDescriptor(serverDynRes.Name, serverDynRes.Condition.Expression);
            }
            else
            {
                WfClientDynamicResourceDescriptor clientDynRes = (WfClientDynamicResourceDescriptor)client;

                clientDynRes.Name = serverDynRes.Name;
                clientDynRes.Condition.Expression = serverDynRes.Condition.Expression;
            }
        }
コード例 #6
0
        public override void ClientToServer(WfClientResourceDescriptor client, ref WfResourceDescriptor server)
        {
            client.NullCheck("client");

            WfClientDynamicResourceDescriptor clientDynRes = (WfClientDynamicResourceDescriptor)client;

            if (server == null)
            {
                server = new WfDynamicResourceDescriptor(clientDynRes.Name, clientDynRes.Condition.Expression);
            }
            else
            {
                WfDynamicResourceDescriptor serverDynRes = (WfDynamicResourceDescriptor)server;

                serverDynRes.Name = clientDynRes.Name;
                serverDynRes.Condition.Expression = clientDynRes.Condition.Expression;
            }
        }