Ejemplo n.º 1
0
        private bool EvaluateEntityCheck(CheckEnumeration entityCheck, params bool[] results)
        {
            switch (entityCheck)
            {
            case CheckEnumeration.all:
                return(results.All(r => r));

            case CheckEnumeration.atleastone:
                return(results.Any(r => r));

            case CheckEnumeration.noneexist:
            case CheckEnumeration.nonesatisfy:
                return(!results.Any(r => r));

            case CheckEnumeration.onlyone:
                return(results.Count(r => r) == 1);

            default:
                throw new ArgumentException("Unexpected entityCheck value");
            }
        }
Ejemplo n.º 2
0
        public static ResultEnumeration CombineResultsByCheck(
            IEnumerable<ResultEnumeration> results, CheckEnumeration check)
        {
            ResultEnumeration combinedResult = ResultEnumeration.unknown;

            if (results.Count() > 0)
            {
                // Get counts of result values
                int trueCount = 0;
                int falseCount = 0;
                int unknownCount = 0;
                int errorCount = 0;
                int notEvaluatedCount = 0;
                int notApplicableCount = 0;

                foreach (ResultEnumeration result in results)
                {

                    if (result == ResultEnumeration.@true)
                    {
                        trueCount++;
                    }
                    else if (result == ResultEnumeration.@false)
                    {
                        falseCount++;
                    }
                    else if (result == ResultEnumeration.unknown)
                    {
                        unknownCount++;
                    }
                    else if (result == ResultEnumeration.error)
                    {
                        errorCount++;
                    }
                    else if (result == ResultEnumeration.notevaluated)
                    {
                        notEvaluatedCount++;
                    }
                    else if (result == ResultEnumeration.notapplicable)
                    {
                        notApplicableCount++;
                    }
                }

                // first check for a possible Not Applicable result
                if (notApplicableCount > 0 && notEvaluatedCount == 0 && falseCount == 0 && errorCount == 0 && unknownCount == 0 && trueCount == 0)
                {
                    return ResultEnumeration.notapplicable;
                }

                // Set the combined result
                if (check == CheckEnumeration.all)
                {
                    if (trueCount > 0 && falseCount == 0 && errorCount == 0 && unknownCount == 0 && notEvaluatedCount == 0)
                    {
                        combinedResult = ResultEnumeration.@true;
                    }
                    else if (falseCount > 0)
                    {
                        combinedResult = ResultEnumeration.@false;
                    }
                    else if (falseCount == 0 && errorCount > 0)
                    {
                        combinedResult = ResultEnumeration.error;
                    }
                    else if (unknownCount > 0 && falseCount == 0 && errorCount == 0)
                    {
                        combinedResult = ResultEnumeration.unknown;
                    }
                    else if (notEvaluatedCount > 0 && falseCount == 0 && errorCount == 0 && unknownCount == 0)
                    {
                        combinedResult = ResultEnumeration.notevaluated;
                    }
                }
                else if (check == CheckEnumeration.atleastone)
                {
                    if (trueCount > 0)
                    {
                        combinedResult = ResultEnumeration.@true;
                    }
                    else if (falseCount > 0 && trueCount == 0 && unknownCount == 0 && errorCount == 0 && notEvaluatedCount == 0)
                    {
                        combinedResult = ResultEnumeration.@false;
                    }
                    else if (errorCount > 0 && trueCount == 0)
                    {
                        combinedResult = ResultEnumeration.error;
                    }
                    else if (unknownCount > 0 && trueCount == 0 && errorCount == 0)
                    {
                        combinedResult = ResultEnumeration.unknown;
                    }
                    else if (notEvaluatedCount > 0 && unknownCount == 0 && trueCount == 0 && errorCount == 0)
                    {
                        combinedResult = ResultEnumeration.notevaluated;
                    }
                }
                else if (check == CheckEnumeration.nonesatisfy)
                {
                    if (trueCount > 0)
                    {
                        combinedResult = ResultEnumeration.@false;
                    }
                    else if (errorCount > 0 && trueCount == 0)
                    {
                        combinedResult = ResultEnumeration.error;
                    }
                    else if (unknownCount > 0 && errorCount == 0 && trueCount == 0)
                    {
                        combinedResult = ResultEnumeration.unknown;
                    }
                    else if (notEvaluatedCount > 0 && unknownCount == 0 && errorCount == 0 && trueCount == 0)
                    {
                        combinedResult = ResultEnumeration.notevaluated;
                    }
                    else if (falseCount > 0 && notEvaluatedCount == 0 && unknownCount == 0 && errorCount == 0 && trueCount == 0)
                    {
                        combinedResult = ResultEnumeration.@true;
                    }
                }
                else if (check == CheckEnumeration.onlyone)
                {
                    if (trueCount == 1 && unknownCount == 0 && errorCount == 0 && notEvaluatedCount == 0)
                    {
                        combinedResult = ResultEnumeration.@true;
                    }
                    else if (trueCount > 1)
                    {
                        combinedResult = ResultEnumeration.@false;
                    }
                    else if (errorCount > 0 && trueCount < 2)
                    {
                        combinedResult = ResultEnumeration.error;
                    }
                    else if (unknownCount > 0 && errorCount == 0 && trueCount < 2)
                    {
                        combinedResult = ResultEnumeration.unknown;
                    }
                    else if (notEvaluatedCount > 0 && unknownCount == 0 && errorCount == 0 && trueCount < 2)
                    {
                        combinedResult = ResultEnumeration.notevaluated;
                    }
                    else if (falseCount > 0 && trueCount != 1)
                    {
                        combinedResult = ResultEnumeration.@false;
                    }
                }
            }

            return combinedResult;
        }
Ejemplo n.º 3
0
 public EntityObjectFieldType() {
     this.datatypeField = "string";
     this.operationField = OperationEnumeration.equals;
     this.maskField = false;
     this.entity_checkField = CheckEnumeration.all;
 }
Ejemplo n.º 4
0
 public EntityStateComplexBaseType() {
     this.entity_checkField = CheckEnumeration.all;
 }
Ejemplo n.º 5
0
        public static ResultEnumeration CombineResultsByCheck(
            IEnumerable <ResultEnumeration> results, CheckEnumeration check)
        {
            ResultEnumeration combinedResult = ResultEnumeration.unknown;

            if (results.Count() > 0)
            {
                // Get counts of result values
                int trueCount          = 0;
                int falseCount         = 0;
                int unknownCount       = 0;
                int errorCount         = 0;
                int notEvaluatedCount  = 0;
                int notApplicableCount = 0;

                foreach (ResultEnumeration result in results)
                {
                    if (result == ResultEnumeration.@true)
                    {
                        trueCount++;
                    }
                    else if (result == ResultEnumeration.@false)
                    {
                        falseCount++;
                    }
                    else if (result == ResultEnumeration.unknown)
                    {
                        unknownCount++;
                    }
                    else if (result == ResultEnumeration.error)
                    {
                        errorCount++;
                    }
                    else if (result == ResultEnumeration.notevaluated)
                    {
                        notEvaluatedCount++;
                    }
                    else if (result == ResultEnumeration.notapplicable)
                    {
                        notApplicableCount++;
                    }
                }

                // first check for a possible Not Applicable result
                if (notApplicableCount > 0 && notEvaluatedCount == 0 && falseCount == 0 && errorCount == 0 && unknownCount == 0 && trueCount == 0)
                {
                    return(ResultEnumeration.notapplicable);
                }

                // Set the combined result
                if (check == CheckEnumeration.all)
                {
                    if (trueCount > 0 && falseCount == 0 && errorCount == 0 && unknownCount == 0 && notEvaluatedCount == 0)
                    {
                        combinedResult = ResultEnumeration.@true;
                    }
                    else if (falseCount > 0)
                    {
                        combinedResult = ResultEnumeration.@false;
                    }
                    else if (falseCount == 0 && errorCount > 0)
                    {
                        combinedResult = ResultEnumeration.error;
                    }
                    else if (unknownCount > 0 && falseCount == 0 && errorCount == 0)
                    {
                        combinedResult = ResultEnumeration.unknown;
                    }
                    else if (notEvaluatedCount > 0 && falseCount == 0 && errorCount == 0 && unknownCount == 0)
                    {
                        combinedResult = ResultEnumeration.notevaluated;
                    }
                }
                else if (check == CheckEnumeration.atleastone)
                {
                    if (trueCount > 0)
                    {
                        combinedResult = ResultEnumeration.@true;
                    }
                    else if (falseCount > 0 && trueCount == 0 && unknownCount == 0 && errorCount == 0 && notEvaluatedCount == 0)
                    {
                        combinedResult = ResultEnumeration.@false;
                    }
                    else if (errorCount > 0 && trueCount == 0)
                    {
                        combinedResult = ResultEnumeration.error;
                    }
                    else if (unknownCount > 0 && trueCount == 0 && errorCount == 0)
                    {
                        combinedResult = ResultEnumeration.unknown;
                    }
                    else if (notEvaluatedCount > 0 && unknownCount == 0 && trueCount == 0 && errorCount == 0)
                    {
                        combinedResult = ResultEnumeration.notevaluated;
                    }
                }
                else if (check == CheckEnumeration.nonesatisfy)
                {
                    if (trueCount > 0)
                    {
                        combinedResult = ResultEnumeration.@false;
                    }
                    else if (errorCount > 0 && trueCount == 0)
                    {
                        combinedResult = ResultEnumeration.error;
                    }
                    else if (unknownCount > 0 && errorCount == 0 && trueCount == 0)
                    {
                        combinedResult = ResultEnumeration.unknown;
                    }
                    else if (notEvaluatedCount > 0 && unknownCount == 0 && errorCount == 0 && trueCount == 0)
                    {
                        combinedResult = ResultEnumeration.notevaluated;
                    }
                    else if (falseCount > 0 && notEvaluatedCount == 0 && unknownCount == 0 && errorCount == 0 && trueCount == 0)
                    {
                        combinedResult = ResultEnumeration.@true;
                    }
                }
                else if (check == CheckEnumeration.onlyone)
                {
                    if (trueCount == 1 && unknownCount == 0 && errorCount == 0 && notEvaluatedCount == 0)
                    {
                        combinedResult = ResultEnumeration.@true;
                    }
                    else if (trueCount > 1)
                    {
                        combinedResult = ResultEnumeration.@false;
                    }
                    else if (errorCount > 0 && trueCount < 2)
                    {
                        combinedResult = ResultEnumeration.error;
                    }
                    else if (unknownCount > 0 && errorCount == 0 && trueCount < 2)
                    {
                        combinedResult = ResultEnumeration.unknown;
                    }
                    else if (notEvaluatedCount > 0 && unknownCount == 0 && errorCount == 0 && trueCount < 2)
                    {
                        combinedResult = ResultEnumeration.notevaluated;
                    }
                    else if (falseCount > 0 && trueCount != 1)
                    {
                        combinedResult = ResultEnumeration.@false;
                    }
                }
            }

            return(combinedResult);
        }