SetProperties
Metadata.SetProperties method
Sets known metadata properties satisfying the specified predicate. The operation is recursive so it affects all nested packages as well. This method is a combination of AddProperties
and UpdateProperties
. If an existing property satisfies the predicate its value is updated. If there is a known property missing in a package that satisfies the predicate it is added to the package.
public int SetProperties(Func<MetadataProperty, bool> predicate, PropertyValue value)
Parameter | Type | Description |
---|---|---|
predicate | Func`2 | A function to test each metadata property for a condition. |
value | PropertyValue | A new value for the filtered properties. |
Return Value
The number of affected properties.
Remarks
Please note that GroupDocs.Metadata implicitly checks the type of each filtered property. It’s impossible to set a property with a value having inappropriate type.
Learn more
Examples
This example demonstrates how to set specific metadata properties using different criteria.
using (Metadata metadata = new Metadata(Constants.InputVsdx))
{
// Set the value of each property that satisfies the predicate:
// property contains the date/time the document was created OR modified
var affected = metadata.SetProperties(
p => p.Tags.Contains(Tags.Time.Created) || p.Tags.Contains(Tags.Time.Modified),
new PropertyValue(DateTime.Now));
Console.WriteLine("Properties set: {0}", affected);
metadata.Save(Constants.OutputVsdx);
}
See Also
- delegate Func<T,TResult>
- class MetadataProperty
- class PropertyValue
- class Metadata
- namespace GroupDocs.Metadata
- assembly GroupDocs.Metadata