예제 #1
0
        private bool ExtractSOARoleMatrixRows(SOARole innerRole, SOARolePropertyRowCollection extractedRows)
        {
            bool extracted = false;

            SOARoleContext.DoAction(innerRole, SOARoleContext.CurrentProcess, (context) =>
            {
                SOARolePropertyRowCollection subRows = innerRole.Rows.Query(context.QueryParams);

                if (this.Role != null)
                {
                    if (((SOARole)this.Role).MatrixType == WfMatrixType.ActivityMatrix && innerRole.MatrixType != WfMatrixType.ActivityMatrix)
                    {
                        subRows = MergeActivityRowPropertiesByRows(subRows);
                    }

                    foreach (SOARolePropertyRow subRow in subRows)
                    {
                        SOARolePropertyRowCollection subExtractedRows = subRow.ExtractMatrixRows();

                        extractedRows.CopyFrom(subExtractedRows);
                    }
                }

                extracted = true;
            });

            return(extracted);
        }
예제 #2
0
        private bool ExtractUserMatrixRows(string operators, SOARolePropertyRowCollection extractedRows)
        {
            List <string> userIDs = GenerateObjectIDs(operators);

            extractedRows.CopyFrom(this.MergeActivityRowPropertiesByOperators(userIDs));

            return(userIDs.Count > 0);
        }
예제 #3
0
        private bool ExtractDynamicRoleMatrixRows(string roleName, SOARolePropertyRowCollection extractedRows)
        {
            OguDataCollection <IUser> users = new OguDataCollection <IUser>();

            FillInternalDynamicRoleUsers(roleName, users);

            extractedRows.CopyFrom(this.MergeActivityRowPropertiesByUsers(users));

            return(users.Count > 0);
        }