protected virtual void OnSavedStateChanged(SavedStates newSavedState) { if (SavedStateChanged == null) { return; } SavedStateChanged(this, new EventArgs <SavedStates>(newSavedState)); }
public void Restore(int transactionId) { if (SavedStates.TryGetValue(transactionId, out var savedState)) { SavedStates[transactionId] = _savedCellContent; _savedCellContent = savedState; RejectChanges(); } }
/// <summary> /// Remove selected state. /// </summary> /// <param name="index">Specifies which saved state should be removed.</param> protected bool RemoveState(int index) { if (!HasState(index)) { return(false); } SavedStates.RemoveAt(index); return(true); }
private void CancelChanges() { Category = new CategoryModel { CategoryName = SavedCategory.CategoryName }; if (SavedCategory.CategoryID != null) { Category.CategoryID = SavedCategory.CategoryID; } States = new ObservableCollection <StateModel>(SavedStates.ToList()); }
public void CommitChanges(int transactionId, bool revertable) { if (revertable) { SavedStates[transactionId] = _savedCellContent; } _savedCellContent = new CellContent(HostedCell); var maxSavedTransaction = SavedStates.Select(x => x.Key).DefaultIfEmpty(0).Max(); for (var i = transactionId + 1; i <= maxSavedTransaction; i++) { SavedStates.Remove(i); } }
/// <summary> /// Remove all saved states. /// </summary> protected void ClearStates() { SavedStates.Clear(); }
/// <summary> /// Save current state. /// </summary> protected void SaveCurrentState() { SavedStates.Add(Originator.SaveStateToMemento()); }