/// <summary>
		/// 获取所有管理员用户信息
		/// </summary>
		/// <returns></returns>
		public static IEnumerable<IUser> GetAllUsers()
		{
			/*
			RolesDefineConfig rolesConfig = RolesDefineConfig.GetConfig().;

			List<string> roleNames = new List<string>();

			foreach (RolesDefine roleDefine in rolesConfig.RolesDefineCollection)
			{
				roleNames.Add(roleDefine.Name);
			}
			               
			IRole[] roles = rolesConfig.GetRolesInstances(roleNames.ToArray()); */

			IRole[] roles = RolesDefineConfig.GetConfig().RolesDefineCollection["ProcessAdmin"].GetRolesInstances();

			Dictionary<string, IUser> allUsers = new Dictionary<string, IUser>();

			foreach (IRole role in roles)
			{
				WfRoleResourceDescriptor roleDescriptor = new WfRoleResourceDescriptor(role);
				WfResourceDescriptorCollection roleDescriptors = new WfResourceDescriptorCollection(roleDescriptor);
				roleDescriptors.Add(roleDescriptor);

				OguDataCollection<IUser> roleUsers = roleDescriptors.ToUsers();

				foreach (IUser user in roleUsers)
				{
					if (allUsers.ContainsKey(user.ID) == false)
						allUsers.Add(user.ID, user);
				}
			}

			return allUsers.Values;
		}
Пример #2
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));
        }
Пример #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);
        }
		private static bool ContainsUserResource(WfResourceDescriptorCollection resources, IUser user)
		{
			bool result = false;

			foreach (WfResourceDescriptor resource in resources)
			{
				if (resource is WfUserResourceDescriptor)
				{
					result = (((WfUserResourceDescriptor)resource).IsSameUser(user));

					if (result)
						break;
				}
			}

			return result;
		}
Пример #5
0
        private static bool ContainsUserResource(WfResourceDescriptorCollection resources, IUser user)
        {
            bool result = false;

            foreach (WfResourceDescriptor resource in resources)
            {
                if (resource is WfUserResourceDescriptor)
                {
                    result = (((WfUserResourceDescriptor)resource).IsSameUser(user));

                    if (result)
                    {
                        break;
                    }
                }
            }

            return(result);
        }
Пример #6
0
        public void QueryRoleUserByContext()
        {
            SOARole role = PrepareSOARole();

            WfRoleResourceDescriptor       roleDescriptor = new WfRoleResourceDescriptor(role);
            WfResourceDescriptorCollection roles          = new WfResourceDescriptorCollection();

            roles.Add(roleDescriptor);

            Dictionary <string, object> parameters = new Dictionary <string, object>();

            parameters["CostCenter"] = "1002";
            parameters["FormType"]   = "Form1";

            WfApplicationParametersContext.CreateContext(parameters);

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

            Assert.AreEqual(4, users.Count);
        }
        public void ServerToClient(WfResourceDescriptorCollection server, WfClientResourceDescriptorCollection client)
        {
            client.NullCheck("client");
            server.NullCheck("server");

            client.Clear();

            foreach (WfResourceDescriptor serverRes in server)
            {
                WfClientResourceDescriptorConverterBase converter = WfClientResourceDescriptorConverterFactory.Instance.GetConverterByServerType(serverRes.GetType());

                if (converter != null)
                {
                    WfClientResourceDescriptor clientRes = null;

                    converter.ServerToClient(serverRes, ref clientRes);

                    if (clientRes != null)
                        client.Add(clientRes);
                }
            }
        }
        public void ClientToServer(WfClientResourceDescriptorCollection client, WfResourceDescriptorCollection server)
        {
            client.NullCheck("client");
            server.NullCheck("server");

            server.Clear();

            foreach (WfClientResourceDescriptor clientRes in client)
            {
                WfClientResourceDescriptorConverterBase converter = WfClientResourceDescriptorConverterFactory.Instance.GetConverterByClientType(clientRes.GetType());

                if (converter != null)
                {
                    WfResourceDescriptor serverRes = null;

                    converter.ClientToServer(clientRes, ref serverRes);

                    if (serverRes != null)
                        server.Add(serverRes);
                }
            }
        }
        /// <summary>
        /// 获取所有管理员用户信息
        /// </summary>
        /// <returns></returns>
        public static IEnumerable <IUser> GetAllUsers()
        {
            /*
             * RolesDefineConfig rolesConfig = RolesDefineConfig.GetConfig().;
             *
             * List<string> roleNames = new List<string>();
             *
             * foreach (RolesDefine roleDefine in rolesConfig.RolesDefineCollection)
             * {
             *      roleNames.Add(roleDefine.Name);
             * }
             *
             * IRole[] roles = rolesConfig.GetRolesInstances(roleNames.ToArray()); */

            IRole[] roles = RolesDefineConfig.GetConfig().RolesDefineCollection["ProcessAdmin"].GetRolesInstances();

            Dictionary <string, IUser> allUsers = new Dictionary <string, IUser>();

            foreach (IRole role in roles)
            {
                WfRoleResourceDescriptor       roleDescriptor  = new WfRoleResourceDescriptor(role);
                WfResourceDescriptorCollection roleDescriptors = new WfResourceDescriptorCollection(roleDescriptor);
                roleDescriptors.Add(roleDescriptor);

                OguDataCollection <IUser> roleUsers = roleDescriptors.ToUsers();

                foreach (IUser user in roleUsers)
                {
                    if (allUsers.ContainsKey(user.ID) == false)
                    {
                        allUsers.Add(user.ID, user);
                    }
                }
            }

            return(allUsers.Values);
        }
Пример #10
0
        public void ServerToClient(WfResourceDescriptorCollection server, WfClientResourceDescriptorCollection client)
        {
            client.NullCheck("client");
            server.NullCheck("server");

            client.Clear();

            foreach (WfResourceDescriptor serverRes in server)
            {
                WfClientResourceDescriptorConverterBase converter = WfClientResourceDescriptorConverterFactory.Instance.GetConverterByServerType(serverRes.GetType());

                if (converter != null)
                {
                    WfClientResourceDescriptor clientRes = null;

                    converter.ServerToClient(serverRes, ref clientRes);

                    if (clientRes != null)
                    {
                        client.Add(clientRes);
                    }
                }
            }
        }
Пример #11
0
		public void QueryRoleUserByContext()
		{
			SOARole role = PrepareSOARole();

			WfRoleResourceDescriptor roleDescriptor = new WfRoleResourceDescriptor(role);
			WfResourceDescriptorCollection roles = new WfResourceDescriptorCollection();

			roles.Add(roleDescriptor);

			Dictionary<string, object> parameters = new Dictionary<string, object>();

			parameters["CostCenter"] = "1002";
			parameters["FormType"] = "Form1";

			WfApplicationParametersContext.CreateContext(parameters);

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

			Assert.AreEqual(4, 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));
        }
Пример #13
0
        internal static void AppendResourcesToNotifiers(IWfActivity currentActivity, UserTaskCollection notifyTasks, WfResourceDescriptorCollection resources)
        {
            foreach (IUser user in resources.ToUsers())
            {
                UserTask task = BuildOneUserNotifyFromActivity(currentActivity);

                task.SendToUserID = user.ID;
                task.SendToUserName = user.DisplayName;

                notifyTasks.Add(task);
            }
        }
 public static void AssertResources(this WfClientResourceDescriptorCollection cc, WfResourceDescriptorCollection sc)
 {
     Assert.AreEqual(cc.Count, sc.Count);
 }
Пример #15
0
        internal static void AppendResourcesToNotifiers(IWfActivity currentActivity, UserTaskCollection notifyTasks, WfResourceDescriptorCollection resources)
        {
            foreach (IUser user in resources.ToUsers())
            {
                UserTask task = BuildOneUserNotifyFromActivity(currentActivity);

                task.SendToUserID   = user.ID;
                task.SendToUserName = user.DisplayName;

                notifyTasks.Add(task);
            }
        }
Пример #16
0
        /// <summary>
        /// 替换原始节点的资源
        /// </summary>
        /// <param name="originalActivity"></param>
        /// <param name="resources"></param>
        public static void ReplaceOriginalActivityResources(IWfActivity originalActivity, WfResourceDescriptorCollection resources)
        {
            ////IWfActivityDescriptor levelActDesp =
            ////originalActivity.RootActivity.Descriptor.Process.GetAllLevels().FindLevelActivity(originalActivity.Descriptor);

            ////IWfActivityDescriptor levelActDesp = originalActivity.Process.GetAllLevels(true).FindLevelActivity(originalActivity.Descriptor); //12-29
            //IWfActivityDescriptor levelActDesp = originalActivity.Process.GetAllLevels(true).FindLevelActivity(originalActivity.Descriptor);

            //if (levelActDesp != null)
            //{
            //    levelActDesp.Resources.Clear();

            //    resources.ForEach(res => levelActDesp.Resources.Add(res));
            //}

            //12-29
        }
        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);
        }
Пример #18
0
 public static void AssertResources(this WfClientResourceDescriptorCollection cc, WfResourceDescriptorCollection sc)
 {
     Assert.AreEqual(cc.Count, sc.Count);
 }
Пример #19
0
		/// <summary>
		/// 替换原始节点的资源
		/// </summary>
		/// <param name="originalActivity"></param>
		/// <param name="resources"></param>
		public static void ReplaceOriginalActivityResources(IWfActivity originalActivity, WfResourceDescriptorCollection resources)
		{
			////IWfActivityDescriptor levelActDesp =
			////originalActivity.RootActivity.Descriptor.Process.GetAllLevels().FindLevelActivity(originalActivity.Descriptor);

			////IWfActivityDescriptor levelActDesp = originalActivity.Process.GetAllLevels(true).FindLevelActivity(originalActivity.Descriptor); //12-29
			//IWfActivityDescriptor levelActDesp = originalActivity.Process.GetAllLevels(true).FindLevelActivity(originalActivity.Descriptor);            

			//if (levelActDesp != null)
			//{
			//    levelActDesp.Resources.Clear();

			//    resources.ForEach(res => levelActDesp.Resources.Add(res));
			//}

			//12-29
		}