public bool TryUpdate(out ContentData result) { result = contentData; if (isChanged) { if (fieldsToDelete != null) { foreach (var field in fieldsToDelete) { contentData.Remove(field); } } if (fieldProperties != null) { foreach (var(key, propertyDescriptor) in fieldProperties) { var value = (ContentDataProperty)propertyDescriptor; if (value.ContentField != null && value.ContentField.TryUpdate(out var fieldData)) { contentData[key] = fieldData; } } } } return(isChanged); }