public static bool CompareMetadata(this MetadataCollection requirements, IDictionary <string, object> provided) { bool result = requirements.All( i => provided.ContainsKeyIgnoreCase(i.Key) && CompareMetadataItems(i.Value, provided.GetEntryIgnoreCase(i.Key))); return(result); }