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);
            }
        }
Beispiel #2
0
 public static List <DkimSelector> ToDkimSelectors(this DkimSelectorsSeen selectors)
 {
     return(selectors.Selectors.Select(_ => new DkimSelector(_)).ToList());
 }