public static void Edit(this Item item, Action<ItemEditArgs> action) { var args = new ItemEditArgs(); try { item.Editing.BeginEdit(); action(args); if (args.Save) { item.Editing.EndEdit(args.UpdateStatistics, args.Silent); } else { item.Editing.CancelEdit(); } } catch { if (args.SaveOnError) { item.Editing.EndEdit(args.UpdateStatistics, args.Silent); } else { item.Editing.CancelEdit(); } throw; } }
public static void Edit(this Item item, Action <ItemEditArgs> action) { var args = new ItemEditArgs(); try { var wasEditing = item.Editing.IsEditing; if (!wasEditing) { item.Editing.BeginEdit(); } action(args); if (!wasEditing) { if (args.Save) { item.Editing.EndEdit(args.UpdateStatistics, args.Silent); } else { item.Editing.CancelEdit(); } } } catch { if (args.SaveOnError) { item.Editing.EndEdit(args.UpdateStatistics, args.Silent); } else { item.Editing.CancelEdit(); } throw; } }