public async Task Handle(DkimRecordEvaluationResult message)
        {
            string id = message.Id.ToLower();

            DkimEntityState state = await LoadDkimState(id, message.Timestamp, nameof(DkimRecordEvaluationResult));

            if (!state.CanUpdate(nameof(DkimRecordEvaluationResult).ToLower(), message.Timestamp))
            {
                _log.LogInformation("Cannot handle event DkimRecordEvaluationResult as newer state exists for {id}.");
                return;
            }

            _changeNotifierComposite.Handle(state, message);
            _domainStatusPublisher.Publish(message);

            List <DkimSelector> selectors = message.ToDkimSelectors();

            state.UpdateRecords(selectors, message.Timestamp);

            DkimEvaluationUpdated evaluationUpdated = state.UpdateEvaluations(message.Timestamp);

            state.Version++;
            state.UpdateSource(nameof(DkimRecordEvaluationResult).ToLower(), message.Timestamp);
            await _dao.Save(state);

            _dispatcher.Dispatch(evaluationUpdated, _config.SnsTopicArn);
            _log.LogInformation("Updated DkimEntity evaluation results for {Id}", id);
        }
        public async Task Handle(DkimSelectorsSeen message)
        {
            string id = message.Id.ToLower();

            DkimEntityState state = await LoadDkimState(id, message.Timestamp, nameof(DkimSelectorsSeen));

            if (!state.CanUpdate(nameof(DkimSelectorsSeen).ToLower(), message.Timestamp))
            {
                _log.LogInformation($"Cannot handle event DkimSelectorsSeen as newer state exists for {id}.");
                return;
            }

            List <DkimSelector> selectors = message.ToDkimSelectors();

            if (state.UpdateSelectors(selectors, out DkimSelectorsUpdated dkimSelectorsUpdated))
            {
                state.Version++;
                state.UpdateSource(nameof(DkimSelectorsSeen).ToLower(), message.Timestamp);
                await _dao.Save(state);

                _dispatcher.Dispatch(dkimSelectorsUpdated, _config.SnsTopicArn);
                _log.LogInformation("Updated DkimEntity selectors for {Id} to {Selectors}.", id, message.Selectors);
            }
        }