Esempio n. 1
0
        public static SOARoleContext CreateContext(SOARolePropertyDefinitionCollection propertyDefines, IWfProcess process)
        {
            propertyDefines.NullCheck("propertyDefines");

            SOARolePropertiesQueryParamCollection queryParams = CreateQueryParams(propertyDefines, process);

            SOARoleContext context = SOARoleContext.CreateContext(queryParams, process);

            context.PropertyDefinitions = propertyDefines;

            return(context);
        }
Esempio n. 2
0
        private static SOARolePropertiesQueryParamCollection CreateQueryParams(SOARolePropertyDefinitionCollection propertyDefines, IWfProcess process)
        {
            SOARolePropertiesQueryParamCollection queryParams = new SOARolePropertiesQueryParamCollection();

            WfApplicationParametersContext apContext = WfApplicationParametersContext.Current;

            //如果是审批矩阵,只取第一列作为条件
            if (propertyDefines.MatrixType == WfMatrixType.ApprovalMatrix)
            {
                if (propertyDefines.Count > 0)
                {
                    SOARolePropertyDefinition pd = propertyDefines[0];

                    object arpValue = GetQueryValueFromContext(pd, process);

                    queryParams.Add(new SOARolePropertiesQueryParam()
                    {
                        QueryName  = pd.Name,
                        QueryValue = arpValue
                    });
                }
            }
            else
            {
                //活动矩阵和角色矩阵,排除保留字
                foreach (SOARolePropertyDefinition pd in propertyDefines)
                {
                    //是否是可查询的列
                    if (IsQueryableColumn(pd, propertyDefines))
                    {
                        object arpValue = GetQueryValueFromContext(pd, process);

                        queryParams.Add(new SOARolePropertiesQueryParam()
                        {
                            QueryName  = pd.Name,
                            QueryValue = arpValue
                        });
                    }
                }
            }

            return(queryParams);
        }
Esempio n. 3
0
		public OguDataCollection<IUser> GetUsersFromSOARole(SOARolePropertiesQueryParamCollection qps)
		{
			SOARolePropertyRowCollection rows = null;
			OguDataCollection<IUser> users = new OguDataCollection<IUser>();
			var schemaRoleID = txtSchemaRoleID.Text;
			var roleRows = AU.Adapters.AUMatrixHelper.LoadSchemaRolePropertyRows(schemaRoleID);

			if (qps != null)
			{
				rows = roleRows.Query(qps);
			}

			foreach (SOARolePropertyRowUsers rowUsers in rows.GenerateRowsUsers())
			{
				foreach (IUser user in rowUsers.Users)
				{
					if (users.Contains(user) == false)
					{
						users.Add(user);
					}
				}
			}
			return users;
		}
Esempio n. 4
0
        public OguDataCollection <IUser> GetUsersFromSOARole(SOARolePropertiesQueryParamCollection qps)
        {
            SOARolePropertyRowCollection rows  = null;
            OguDataCollection <IUser>    users = new OguDataCollection <IUser>();
            var schemaRoleID = txtSchemaRoleID.Text;
            var roleRows     = AU.Adapters.AUMatrixHelper.LoadSchemaRolePropertyRows(schemaRoleID);

            if (qps != null)
            {
                rows = roleRows.Query(qps);
            }

            foreach (SOARolePropertyRowUsers rowUsers in rows.GenerateRowsUsers())
            {
                foreach (IUser user in rowUsers.Users)
                {
                    if (users.Contains(user) == false)
                    {
                        users.Add(user);
                    }
                }
            }
            return(users);
        }
Esempio n. 5
0
        private static SOARolePropertiesQueryParamCollection CreateQueryParams(SOARolePropertyDefinitionCollection propertyDefines, IWfProcess process)
        {
            SOARolePropertiesQueryParamCollection queryParams = new SOARolePropertiesQueryParamCollection();

            WfApplicationParametersContext apContext = WfApplicationParametersContext.Current;

            //如果是审批矩阵,只取第一列作为条件
            if (propertyDefines.MatrixType == WfMatrixType.ApprovalMatrix)
            {
                if (propertyDefines.Count > 0)
                {
                    SOARolePropertyDefinition pd = propertyDefines[0];

                    object arpValue = GetQueryValueFromContext(pd, process);

                    queryParams.Add(new SOARolePropertiesQueryParam()
                    {
                        QueryName = pd.Name,
                        QueryValue = arpValue
                    });
                }
            }
            else
            {
                //活动矩阵和角色矩阵,排除保留字
                foreach (SOARolePropertyDefinition pd in propertyDefines)
                {
                    //是否是可查询的列
                    if (IsQueryableColumn(pd, propertyDefines))
                    {
                        object arpValue = GetQueryValueFromContext(pd, process);

                        queryParams.Add(new SOARolePropertiesQueryParam()
                        {
                            QueryName = pd.Name,
                            QueryValue = arpValue
                        });
                    }

                }
            }

            return queryParams;
        }