public static FileMetadataSet FindWithPendingUpdates(
FileMetadataSet metadataSet) {
FileMetadataSet outMetadataSet = new FileMetadataSet();
foreach (var filenameAndMetadata in
metadataSet.metadataByCanonicalFilename) {
var metadataByVersion = filenameAndMetadata.Value.Values;
bool needsUpdate = metadataByVersion.Count > 1;
if (!needsUpdate) {
foreach (var metadata in metadataByVersion) {
if ((metadata.targets != null &&
metadata.targets.Length > 0) ||
metadata.isManifest) {
needsUpdate = true;
break;
}
}
}
if (needsUpdate) {
outMetadataSet.metadataByCanonicalFilename[
filenameAndMetadata.Key] = filenameAndMetadata.Value;
}
}
return outMetadataSet;
}