protected override ValidationResult IsValid(object value, ValidationContext validationContext) { var dictionary = value as IDictionary; if (dictionary == null) { return(ValidationResult.Success); } var compositeResults = new CompositeValidationResult($"Validation of '{validationContext.DisplayName}' failed."); foreach (DictionaryEntry entry in dictionary) { var enumerable = (entry.Value as IList); if (enumerable == null) { throw new Exception($"Unable to unwrap the extension object."); } var context = new ValidationContext(enumerable, null) { DisplayName = GetAggregateExtensionDisplayName((string)entry.Key) }; var enumerableValidationResult = _validateEnumerable.GetValidationResult(enumerable, context); if (enumerableValidationResult == ValidationResult.Success) { continue; } compositeResults.AddResult( enumerableValidationResult is CompositeValidationResult ? enumerableValidationResult : new ValidationResult($"{context.DisplayName} ({entry.Key}): {enumerableValidationResult}")); } return(compositeResults.Results.Any() ? compositeResults : ValidationResult.Success); string GetAggregateExtensionDisplayName(string extensionBagName) { var bagNameParts = SystemConventions.GetExtensionBagNameParts(extensionBagName); return($"{bagNameParts.PluralName} ({bagNameParts.SchemaProperCaseName})"); } }
protected override void Act() { _actualBagNameParts = SystemConventions.GetExtensionBagNameParts(_suppliedExtensionBagName); }
protected override void Act() { var actualBagNameParts = SystemConventions.GetExtensionBagNameParts("Too_Many_Underscores"); }
protected override void Act() { var actualBagNameParts = SystemConventions.GetExtensionBagNameParts("NoUnderscoreSeparator"); }
private static string GetAggregateExtensionDisplayName(string extensionBagName) { var bagNameParts = SystemConventions.GetExtensionBagNameParts(extensionBagName); return($"{bagNameParts.PluralName} ({bagNameParts.SchemaProperCaseName})"); }