diff --git a/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs b/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs
index da2a463..b42fad0 100644
--- a/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs
+++ b/src/WireMock.Net.Extensions.WireMockInspector/WireMockServerExtensions.cs
@@ -13,7 +13,7 @@ public static class WireMockServerExtensions
///
/// The current thread will be blocked until WireMockInspector process exits.
///
- public static void Inspect(this IWireMockServer wireMock, [CallerMemberName] string title = "")
+ public static void Inspect(this IWireMockServer wireMock, [CallerMemberName] string title = "", string requestFilters = "")
{
if (wireMock.IsStarted == false)
throw new InvalidOperationException("WireMock server is not started");
@@ -21,20 +21,27 @@ public static void Inspect(this IWireMockServer wireMock, [CallerMemberName] str
if (wireMock.IsStartedWithAdminInterface == false)
throw new InvalidOperationException("WireMock service is not started with Admin interface");
- Inspect(wireMock.Url!, title);
+ Inspect(wireMock.Url!, title, requestFilters);
}
///
/// Run WireMockInspector dotnet tool and attach it to existing WireMockServer listening under given url
///
- public static void Inspect(string wireMockUrl, [CallerMemberName] string title = "")
+ public static void Inspect(string wireMockUrl, [CallerMemberName] string title = "", string requestFilters = "")
{
+ //request.header.traceparent:*0fd18063ed68b122d3e659ecbb4e6f0d*
try
{
+ var arguments = $"attach --adminUrl {wireMockUrl} --autoLoad --instanceName \"{title}\"";
+ if (string.IsNullOrWhiteSpace(requestFilters) == false)
+ {
+ arguments += $" --requestFilters \"{requestFilters}\"";
+ }
+
var inspectorProcess = Process.Start(new ProcessStartInfo
{
FileName = "wiremockinspector",
- Arguments = $"attach --adminUrl {wireMockUrl} --autoLoad --instanceName \"{title}\"",
+ Arguments = arguments,
UseShellExecute = false
});
diff --git a/src/WireMockInspector/App.axaml.cs b/src/WireMockInspector/App.axaml.cs
index 70cc2b9..a5b79b2 100644
--- a/src/WireMockInspector/App.axaml.cs
+++ b/src/WireMockInspector/App.axaml.cs
@@ -36,16 +36,20 @@ public override void OnFrameworkInitializationCompleted()
attachCommand.AddOption(autoLoadOption);
var instanceNameOption = new Option("--instanceName") { IsRequired = false };
attachCommand.AddOption(instanceNameOption);
+
+ var requestFiltersOption = new Option("--requestFilters") { IsRequired = false };
+ attachCommand.AddOption(requestFiltersOption);
- attachCommand.SetHandler((adminUrl, autoLoad, instanceName) =>
+ attachCommand.SetHandler((adminUrl, autoLoad, instanceName, requestFilters) =>
{
mainWindow.Settings = new StartupSettings
{
AdminUrl = adminUrl,
InstanceName = instanceName,
- AutoLoad = autoLoad
+ AutoLoad = autoLoad,
+ RequestFilters = requestFilters
};
- }, adminUrlOption, autoLoadOption, instanceNameOption);
+ }, adminUrlOption, autoLoadOption, instanceNameOption, requestFiltersOption);
rootCommand.AddCommand(attachCommand);
rootCommand.SetHandler(() => { });
rootCommand.Invoke(args);
@@ -63,5 +67,6 @@ public class StartupSettings
public string AdminUrl { get; set; }
public bool AutoLoad { get; set; }
public string InstanceName { get; set; }
+ public string RequestFilters { get; set; }
}
}
\ No newline at end of file
diff --git a/src/WireMockInspector/Views/MainWindow.axaml.cs b/src/WireMockInspector/Views/MainWindow.axaml.cs
index db21319..9e3b369 100644
--- a/src/WireMockInspector/Views/MainWindow.axaml.cs
+++ b/src/WireMockInspector/Views/MainWindow.axaml.cs
@@ -49,9 +49,13 @@ public MainWindow()
if (Settings != null)
{
ViewModel.AdminUrl = Settings.AdminUrl;
+
if (Settings.AutoLoad)
{
- ViewModel.LoadRequestsCommand.Execute().Subscribe().DisposeWith(disposables);
+ ViewModel.LoadRequestsCommand.Execute().ObserveOn(RxApp.MainThreadScheduler).Subscribe(_ =>
+ {
+ ViewModel.RequestSearchTerm = Settings.RequestFilters;
+ }).DisposeWith(disposables);
}
if (string.IsNullOrWhiteSpace(Settings.InstanceName) == false)