public SuspectLicensePlateChecker(ILicensePlateCheckService licensePlateCheckService,
            ILicensePlateEventPublisher licensePlateEventPublisher,
            IEnumerable<INotifySuspeciousLicensePlate> suspeciousLicensePlateObserver)
        {
            if (licensePlateCheckService == null)
                throw new ArgumentNullException("licensePlateCheckService");
            if (licensePlateEventPublisher == null) throw new ArgumentNullException("licensePlateEventPublisher");
            if (suspeciousLicensePlateObserver == null)
                throw new ArgumentNullException("suspeciousLicensePlateObserver");

            _licensePlateCheckService = licensePlateCheckService;
            _suspeciousLicensePlateObserver = suspeciousLicensePlateObserver;

            _licensePlateEventPublisher = licensePlateEventPublisher;
            _licensePlateEventPublisher.RegisterForLicensePlateEvent(this);
        }
        public SuspectLicensePlateChecker(ILicensePlateCheckService licensePlateCheckService,
                                          ILicensePlateEventPublisher licensePlateEventPublisher,
                                          IEnumerable <INotifySuspeciousLicensePlate> suspeciousLicensePlateObserver)
        {
            if (licensePlateCheckService == null)
            {
                throw new ArgumentNullException("licensePlateCheckService");
            }
            if (licensePlateEventPublisher == null)
            {
                throw new ArgumentNullException("licensePlateEventPublisher");
            }
            if (suspeciousLicensePlateObserver == null)
            {
                throw new ArgumentNullException("suspeciousLicensePlateObserver");
            }

            _licensePlateCheckService       = licensePlateCheckService;
            _suspeciousLicensePlateObserver = suspeciousLicensePlateObserver;

            _licensePlateEventPublisher = licensePlateEventPublisher;
            _licensePlateEventPublisher.RegisterForLicensePlateEvent(this);
        }