private void UpdateFileLevelMetadata(File modifiedFile)
{
if (modifiedFile.FileMetadataFields != null)
{
foreach (var fileMetaData in modifiedFile.FileMetadataFields)
{
//first update the existing records
if (fileMetaData.FileMetadataFieldId != 0 && !string.IsNullOrEmpty(fileMetaData.MetadataValue))
{
Context.SetEntityState<FileMetadataField>(fileMetaData, EntityState.Modified);
}
}
List<FileMetadataField> ToBeDeletedfileMetaDataList = new List<FileMetadataField>();
foreach (var fileMetaData in modifiedFile.FileMetadataFields)
{
if (string.IsNullOrEmpty(fileMetaData.MetadataValue))
{
ToBeDeletedfileMetaDataList.Add(fileMetaData);
}
}
foreach (var deleteFileMetaData in ToBeDeletedfileMetaDataList)
{
Context.SetEntityState<FileMetadataField>(deleteFileMetaData, EntityState.Deleted);
Context.FileMetadataFields.Remove(deleteFileMetaData);
}
}
}