/// <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); }
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); }
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); }
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)); }
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; } }
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; } }