From 06e8fdfc59296dccf9d765699b0daca52d0af500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Erbsh=C3=A4u=C3=9Fer?= Date: Wed, 17 Jun 2020 13:09:50 +0200 Subject: [PATCH] Fixed bug in file loader. Implemented ResetModified. --- ucalc/Data/BillingLoader.cs | 4 ++-- ucalc/Models/Model.cs | 4 +++- ucalc/Models/Properties.cs | 21 +++++++++++++++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/ucalc/Data/BillingLoader.cs b/ucalc/Data/BillingLoader.cs index f1b18d2..f1be8fb 100644 --- a/ucalc/Data/BillingLoader.cs +++ b/ucalc/Data/BillingLoader.cs @@ -59,12 +59,12 @@ namespace UCalc.Data public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { - return existingValue ?? string.Empty; + return reader.Value ?? ""; } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { - writer.WriteValue(value ?? string.Empty); + writer.WriteValue(value ?? ""); } } diff --git a/ucalc/Models/Model.cs b/ucalc/Models/Model.cs index 371ad03..dbff67b 100644 --- a/ucalc/Models/Model.cs +++ b/ucalc/Models/Model.cs @@ -248,7 +248,9 @@ namespace UCalc.Models public void ResetModified() { - throw new NotImplementedException(); + using var validator = BeginValidation(); + + Root.ResetModified(); } public event PropertyChangedEventHandler PropertyChanged; diff --git a/ucalc/Models/Properties.cs b/ucalc/Models/Properties.cs index 89106e4..aa33532 100644 --- a/ucalc/Models/Properties.cs +++ b/ucalc/Models/Properties.cs @@ -81,6 +81,11 @@ namespace UCalc.Models return i; } + + public virtual void ResetModified() + { + Modified = false; + } } public abstract class ValueProperty : Property @@ -244,6 +249,14 @@ namespace UCalc.Models base.OnPropertyChanged(propertyName); } + + public override void ResetModified() + { + foreach (var property in _properties) + { + property.ResetModified(); + } + } } public abstract class MultiProperty : Property, IReadOnlyList, INotifyCollectionChanged where T : Property @@ -342,6 +355,14 @@ namespace UCalc.Models base.OnPropertyChanged(propertyName); } + public override void ResetModified() + { + foreach (var property in _properties) + { + property.ResetModified(); + } + } + public IEnumerator GetEnumerator() { return _properties.GetEnumerator();