public void PropagateParent(IDataTransaction parent) { Parent = parent; object value = CurrentData; if (DataTransactionHelper.IsDataTransactionObject(value)) { DataTransactionHelper.PropagateParent(value, parent); } }
public void SetAsOriginal() { canRollbackOriginal = true; object data = CurrentData; if (DataTransactionHelper.IsDataTransactionObject(data)) { DataTransactionHelper.SetAsOriginal(data); return; } OriginalData = Clone(data); }
public void RollbackOriginal() { CancelUpdate(); if (!canRollbackOriginal) { return; } object data = CurrentData; if (DataTransactionHelper.IsDataTransactionObject(data)) { DataTransactionHelper.RollbackOriginal(data); return; } CurrentData = OriginalData; }
public void CommitUpdate() { object value = CurrentData; if (DataTransactionHelper.IsDataTransactionObject(value)) { DataTransactionHelper.CommitUpdate(value); State = DataTransactionState.Commit; return; } if (isUpdating) { oldPropertyValue = null; isUpdating = false; OnPropertyChanged(); State = DataTransactionState.Commit; } }
public void BeginUpdate(IDataTransaction parent, params object[] ids) { Parent = parent; object value = CurrentData; if (DataTransactionHelper.IsDataTransactionObject(value)) { DataTransactionHelper.BeginUpdate(value, parent, ids); if (value is IList) { Backup(value); } State = DataTransactionState.Begin; return; } Backup(value); isUpdating = true; State = DataTransactionState.Begin; }
public void CancelUpdate() { object value = CurrentData; if (DataTransactionHelper.IsDataTransactionObject(value)) { DataTransactionHelper.CancelUpdate(value); if (value is IList) { Restore(oldPropertyValue); } State = DataTransactionState.Cancel; return; } if (isUpdating) { Restore(oldPropertyValue); isUpdating = false; State = DataTransactionState.Cancel; } }
private bool DoValidate(object value, out ValidatingExceptionMessage exceptionMessage) { exceptionMessage = null; if (DataTransactionHelper.IsDataTransactionObject(value)) { return(DataTransactionHelper.Validate(value, out exceptionMessage)); } IDataOwner dataOwner = PropertyOwner as IDataOwner; bool isPass = (dataOwner != null) ? dataOwner.Validate(value) : (CustomAttribute.IsRequired) ? Validate(value) : true; if (!isPass) { exceptionMessage = new ValidatingExceptionMessage(); exceptionMessage.Reference = PropertyOwner; exceptionMessage.ReferenceProperty = this; } return(isPass); }