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);
        }