From ffb50ba36498054494a643fd1da4898c008dfadc Mon Sep 17 00:00:00 2001 From: ArchLeaders Date: Tue, 11 Jul 2023 10:49:09 -0700 Subject: [PATCH] Add reset function to IConfigModule --- src/ConfigFactory.Core/ConfigModule.cs | 8 ++++++++ src/ConfigFactory.Core/IConfigModule.cs | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/src/ConfigFactory.Core/ConfigModule.cs b/src/ConfigFactory.Core/ConfigModule.cs index 7c89954..3006c36 100644 --- a/src/ConfigFactory.Core/ConfigModule.cs +++ b/src/ConfigFactory.Core/ConfigModule.cs @@ -70,6 +70,14 @@ IConfigModule IConfigModule.Load() return result; } + public void Reset() + { + IConfigModule config = Load(); + foreach ((var name, (var property, _)) in Properties) { + property.SetValue(Shared, config.Properties[name].Property.GetValue(config)); + } + } + protected void SetValidation(Expression> property, Func validation, string? invalidErrorMessage = null, string? validationFailureColor = null, string? validationSuccessColor = null) { diff --git a/src/ConfigFactory.Core/IConfigModule.cs b/src/ConfigFactory.Core/IConfigModule.cs index a84a20d..265b1c3 100644 --- a/src/ConfigFactory.Core/IConfigModule.cs +++ b/src/ConfigFactory.Core/IConfigModule.cs @@ -31,6 +31,12 @@ public interface IConfigModule /// public IConfigModule Load(); + /// + /// Resets the to their last saved values + /// + /// + public void Reset(); + /// /// Saves the current instance ///