private async void _alarmRepository_AlarmChanged(object sender, AlarmChangedEventArgs e)
        {
            // Only handle closed alarms
            if (e.Alarm.StateId != BuiltInAlarmStates.Closed)
            {
                return;
            }

            // If all alarms for this source and event type are closed in VMS, close corresponding alarm in the Demo Access Control system
            var doorId      = e.Alarm.ExternalSourceId;
            var eventTypeId = e.Alarm.ExternalEventTypeId;

            var alarms = _alarmRepository.GetAlarmsForSource(doorId, eventTypeId, false);

            if (!alarms.Any())
            {
                try
                {
                    await _client.CloseAlarmAsync(doorId, eventTypeId);
                }
                catch (DemoApplicationClientException ex)
                {
                    // A retry mechanism would probably be in order...
                    ACUtil.Log(true, "DemoACPlugin.AlarmManager", "Error closing alarm in Demo Access Control system: " + ex.Message);
                }
            }
        }