void IEditableObject.BeginEdit()
{
if (_backup != null)
{
Log.Debug("IEditableObject is already in edit state");
return;
}
var eventArgs = new BeginEditEventArgs(this);
_beginEditingEvent.SafeInvoke(this, eventArgs);
OnBeginEdit(eventArgs);
if (eventArgs.Cancel)
{
Log.Info("IEditableObject.BeginEdit is canceled by the event args");
return;
}
Log.Debug("IEditableObject.BeginEdit");
_backup = new BackupData(this);
}