diff --git a/src/WireMock.Net/Server/FluentMockServer.Admin.cs b/src/WireMock.Net/Server/FluentMockServer.Admin.cs index 3a08b6f0..2fc4dbbb 100644 --- a/src/WireMock.Net/Server/FluentMockServer.Admin.cs +++ b/src/WireMock.Net/Server/FluentMockServer.Admin.cs @@ -37,22 +37,42 @@ namespace WireMock.Server NullValueHandling = NullValueHandling.Ignore, }; - private void ReadStaticMappings() + /// + /// Reads the static mappings from a folder. + /// + /// The optional folder. If not defined, use \__admin\mappings\ + [PublicAPI] + public void ReadStaticMappings([CanBeNull] string folder = null) { - if (!Directory.Exists(Directory.GetCurrentDirectory() + AdminMappingsFolder)) + if (folder == null) + folder = Directory.GetCurrentDirectory() + AdminMappingsFolder; + + if (!Directory.Exists(folder)) return; foreach (string filename in Directory.EnumerateFiles(Directory.GetCurrentDirectory() + AdminMappingsFolder)) { - string filenameWithoutExtension = Path.GetFileNameWithoutExtension(filename); - Guid guid; - if (!Guid.TryParse(filenameWithoutExtension, out guid)) - guid = Guid.NewGuid(); - - DeserializeAndAddMapping(File.ReadAllText(filename), guid); + ReadStaticMapping(filename); } } + /// + /// Reads the static mapping. + /// + /// The filename. + [PublicAPI] + public void ReadStaticMapping([NotNull] string filename) + { + Check.NotNull(filename, nameof(filename)); + + string filenameWithoutExtension = Path.GetFileNameWithoutExtension(filename); + Guid guid; + if (!Guid.TryParse(filenameWithoutExtension, out guid)) + guid = Guid.NewGuid(); + + DeserializeAndAddMapping(File.ReadAllText(filename), guid); + } + private void InitAdmin() { // __admin/settings