I am creating version of item on lock & edit button. I want to remove that version if author does not change any value of that version while check in version. I would like to compare versions and delete newly created version if there is no change while check in item version.
Note: No workflow is needed
On ItemSaving event you can get the list of changes in the item. Here is some sample code to get the idea:
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();
}