コード例 #1
0
        public void ValidateStateCombinationsAgainstStateProperties(SecurableClassValidationResult result)
        {
            Assertion.IsTrue(
                State != StateType.Deleted || StateCombinations.Count == 0, "StateCombinations of object '{0}' are not empty but the object is deleted.", ID);

            foreach (var stateCombination in StateCombinations.Where(sc => sc.GetStates().Length != StateProperties.Count))
            {
                result.AddInvalidStateCombination(stateCombination);
            }
        }
コード例 #2
0
        public void ValidateUniqueStateCombinations(SecurableClassValidationResult result)
        {
            Assertion.IsTrue(
                State != StateType.Deleted || StateCombinations.Count == 0, "StateCombinations of object '{0}' are not empty but the object is deleted.", ID);

            var duplicateStateCombinations = StateCombinations
                                             .GroupBy(sc => sc, new StateCombinationComparer())
                                             .Where(g => g.Count() > 1)
                                             .SelectMany(g => g);

            foreach (var stateCombination in duplicateStateCombinations)
            {
                result.AddDuplicateStateCombination(stateCombination);
            }
        }
コード例 #3
0
 public StateCombination FindStateCombination(IList <StateDefinition> states)
 {
     return(StateCombinations.Where(sc => sc.MatchesStates(states)).SingleOrDefault());
 }