From 8f431493fff28a6a513a6e8ec3368b6f47963478 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2026 08:11:08 +0000 Subject: [PATCH 1/2] Bump Zyga.SeriRestClient from 0.1.1 to 0.2.0 --- updated-dependencies: - dependency-name: Zyga.SeriRestClient dependency-version: 0.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index ff650c7..d8c3f6c 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -20,7 +20,7 @@ - + From cee05a71903a2c2630e3f6caa041b11552329a1f Mon Sep 17 00:00:00 2001 From: Szymon Zywert Date: Tue, 27 Oct 2026 18:38:46 +0100 Subject: [PATCH 2/2] Update DI registration for Zyga.SeriRestClient 0.2.0's fluent builder API 0.2.0 replaced AddSeriRestClient(key, factory) with AddSeriRestClient(key) returning an ISeriRestClientBuilder configured via .Configure(...). --- .../RegistrationExtensions.cs | 42 +++++++++++-------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/src/Zyga.HikIsapiClient/ExtensionMethods/RegistrationExtensions.cs b/src/Zyga.HikIsapiClient/ExtensionMethods/RegistrationExtensions.cs index b5f36b7..7f69dce 100644 --- a/src/Zyga.HikIsapiClient/ExtensionMethods/RegistrationExtensions.cs +++ b/src/Zyga.HikIsapiClient/ExtensionMethods/RegistrationExtensions.cs @@ -28,11 +28,10 @@ public static IHostBuilder AddHikIsapi(this IHostBuilder hostBuilder, string con .GetRequiredSection(configSection) .Get() ?? throw new Exception($"Section [{configSection}] not found in config") ) - .AddSeriRestClient(Isapi.ServiceKey, (sp, key) => - { - return sp.GetRequiredService() - .GetRestClientOptions(); - }) + .AddSeriRestClient(Isapi.ServiceKey) + .Configure((sp, _, options) => sp.GetRequiredService() + .ApplyRestClientOptions(options)) + .Services .AddTransient((sp) => new Isapi( sp.GetRequiredService(), sp.GetRequiredService(), @@ -53,13 +52,13 @@ public static IHostBuilder AddHikIsapi(this IHostBuilder hostBuilder, string con public static IServiceCollection AddKeyedHikIsapi(this IServiceCollection services, object isapiKey, Func implementationFactory) where TConfig : class, IIsapiConfig { - return services + services .AddKeyedSingleton(isapiKey, implementationFactory) - .AddSeriRestClient($"{Isapi.ServiceKey}_{isapiKey}", (sp, seriRestKey) => - { - return sp.GetRequiredKeyedService(isapiKey) - .GetRestClientOptions(); - }) + .AddSeriRestClient($"{Isapi.ServiceKey}_{isapiKey}") + .Configure((sp, _, options) => sp.GetRequiredKeyedService(isapiKey) + .ApplyRestClientOptions(options)); + + return services .AddKeyedScoped(isapiKey, (sp, _) => new Isapi( sp.GetRequiredKeyedService(isapiKey), sp.GetRequiredService(), @@ -74,11 +73,20 @@ public static IServiceCollection AddKeyedHikIsapi(this IServiceCollecti /// Configured pointing at the device's ISAPI endpoint. public static RestClientOptions GetRestClientOptions(this IIsapiConfig config) { - return new RestClientOptions() - { - CookieContainer = new CookieContainer(), - BaseUrl = new Uri($"{config.Address}/ISAPI"), - Timeout = TimeSpan.FromMilliseconds(config.MaxTimeout ?? 5000) - }; + var options = new RestClientOptions(); + config.ApplyRestClientOptions(options); + return options; + } + + /// + /// Applies a device's configuration onto an existing instance. + /// + /// The device configuration. + /// The options instance to configure. + private static void ApplyRestClientOptions(this IIsapiConfig config, RestClientOptions options) + { + options.CookieContainer = new CookieContainer(); + options.BaseUrl = new Uri($"{config.Address}/ISAPI"); + options.Timeout = TimeSpan.FromMilliseconds(config.MaxTimeout ?? 5000); } }