private void RemoveMessage(string propertyName) { TrackerMessage removeValue; ChangesNotes.TryRemove(propertyName, out removeValue); RaiseOnModified(propertyName); }
private void LogNewMessage(object oldValue, string message, string propertyName) { var newChange = new TrackerMessage { OriginalValue = oldValue, Message = message }; if (!ChangesNotes.TryAdd(propertyName, newChange)) { throw new ArgumentException("Unable to add specified property to the change message dictionary."); } RaiseOnModified(propertyName); }
private void LogMessage(object newValue, object oldValue, string message, string propertyName) { if (ChangesNotes.ContainsKey(propertyName)) { var originalValue = ChangesNotes[propertyName].OriginalValue; if ((string.IsNullOrWhiteSpace(newValue?.ToString()) && string.IsNullOrWhiteSpace(originalValue?.ToString())) || (originalValue == newValue)) { RemoveMessage(propertyName); } else { ChangeMessage(originalValue, message, propertyName); } } else { LogNewMessage(oldValue, message, propertyName); } }
/// <summary> /// Resets this instance. /// </summary> public new virtual void Reset() { Changes.Clear(); ChangesNotes.Clear(); RaiseOnModified(""); }