我正在锁定&创建项目版本编辑按钮。如果作者在签入版本时没有更改该版本的任何值,我想删除该版本。如果在签入项目版本时没有变化,我想比较版本并删除新创建的版本。
注意:不需要工作流程
答案 0 :(得分:1)
在ItemSaving事件中,您可以获取项目中的更改列表。 以下是一些获得想法的示例代码:
protected void OnItemSaving(object sender, EventArgs args)
{
var newItem = Event.ExtractParameter(args, 0) as Item;
Item originalItem = newItem.Database.GetItem(newItem.ID, newItem.Language, newItem.Version);
var differences = FindDifferences(newItem, originalItem);
}
private List<string> FindDifferences(Item newItem, Item originalItem)
{
newItem.Fields.ReadAll();
IEnumerable<string> fieldNames = newItem.Fields.Select(f => f.Name);
return fieldNames
.Where(fieldName => newItem[fieldName] != originalItem[fieldName])
.ToList();
}
答案 1 :(得分:0)