Management Client crashes on "Refresh Configuration" (culture-sensitive coordinate parsing)

Severity: High — the entire Management Client process (VideoOS.Administration.exe) terminates with an unhandled exception.

Affected component: VideoOS.AccessControl.Plugin.UI.AddAccessControlSystemWizard.SystemSummaryViewModel (Management Client 2025 R2).

Summary

When an access-control unit has been placed on a map (Smart Map / GPS coordinates) and the operator triggers Access Control → Refresh Configuration, the Management Client crashes on any non-invariant UI culture (reproduced on German, de-DE). The refresh works only as long as no positioned unit ends up in the “modified” set.

Steps to reproduce

  1. Set up an access-control system whose units are exposed by an AC plugin without a GisPoint (position empty).

  2. In XProtect, place at least one unit (door) on a Smart Map / assign GPS coordinates → Milestone stores its position.

  3. Run the Management Client on a German Windows/UI locale.

  4. Access Control → Refresh Configuration.

Expected

Refresh completes; the summary dialog shows the (unchanged) configuration.

Actual

VideoOS.Administration.exe closes with an unhandled ACConfigurationException

VideoOS.Platform.AccessControl.Plugin.ACConfigurationException
   at VideoOS.Platform.AccessControl.Elements.ACUnit.SetPosition(Nullable`1<Double>, Nullable`1<Double>)
   at VideoOS.AccessControl.Plugin.UI.AddAccessControlSystemWizard.SystemSummaryViewModel..ctor(ACConfiguration, ACConfiguration)
   at VideoOS.AccessControl.Plugin.UI.DetailUserControls.GeneralTab.RefreshConfigurationWindow.SetStatus(Double, Boolean, String, ACConfiguration)
   at VideoOS.AccessControl.Plugin.UI.DetailUserControls.GeneralTab.RefreshConfigurationWindow.AccessControlSystemConfigurationManager_ConfigurationUpdateStatusChanged(Object, ConfigurationUpdateStatusChangedEventArgs)
   at System.Windows.Threading.Dispatcher... (WPF dispatcher)
   ...
   at VideoOS.AccessControl.Plugin.UI.DetailUserControls.GeneralTab.GeneralTabUserControl._refreshConfigurationButton_OnClick(Object, RoutedEventArgs)
   ...
   at VideoOS.Administration.Program.Main()
Application: VideoOS.Administration.exe / Framework v4.0.30319 / process terminated by unhandled exception.