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