/// <summary>
        /// Apply the properties, which are specified when configuring the access control system in the VMS administrator.
        /// SetProperties is called after initialization on both start-up and when configuring the system in the VMS.
        /// </summary>
        public override void SetProperties(IEnumerable <ACProperty> properties)
        {
            _systemProperties.UpdateProperties(properties);

            // Update external commands (uses the system address from the properties)
            var cardholderManagementUri = new UriBuilder("http", _systemProperties.Address, _systemProperties.Port, "DemoACServerApplication/CardholderManagement/").Uri;
            var reportingUri            = new UriBuilder("http", _systemProperties.Address, _systemProperties.Port, "DemoACServerApplication/Reporting/").Uri;

            _externalCommands = new[]
            {
                new ACExternalCommand("Cardholder management", cardholderManagementUri.AbsoluteUri, ACExternalCommandTypes.OpenUrlInExternalBrowser, 1),
                new ACExternalCommand("Reporting", reportingUri.AbsoluteUri, ACExternalCommandTypes.OpenUrlInExternalBrowser, 2),
            };
        }