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); } }
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); } }
public StateCombination FindStateCombination(IList <StateDefinition> states) { return(StateCombinations.Where(sc => sc.MatchesStates(states)).SingleOrDefault()); }