private static ConventionResult CompareEnums(IDictionary <int, string> left, IDictionary <int, string> right, ConventionResult result) { foreach (var leftValue in left) { if (!right.ContainsKey(leftValue.Key)) { result = result.And(ConventionResult.NotSatisfied(leftValue.Value, string.Format("{0} ({1}) does not match any values", leftValue.Value, leftValue.Key))); } else if (right[leftValue.Key] != leftValue.Value) { result = result.And(ConventionResult.NotSatisfied(leftValue.Value, string.Format("{0} ({1}) does not match names with the corresponding value", leftValue.Value, leftValue.Key))); } } return(result); }