private async Task <TlsRptEntityState> LoadState(string id, string messageType) { TlsRptEntityState state = await _dao.Get(id); if (state == null) { _log.LogError("Ignoring {EventName} as TLS/RPT Entity does not exist for {Id}.", messageType, id); throw new MailCheckException( $"Cannot handle event {messageType} as TLS/RPT Entity does not exists for {id}."); } return(state); }
public async Task Handle(TlsRptRecordExpired message) { string messageId = message.Id.ToLower(); TlsRptEntityState state = await LoadState(messageId, nameof(message)); Message updatePollPending = state.UpdatePollPending(); state.Version++; await _dao.Save(state); _dispatcher.Dispatch(updatePollPending, _tlsRptEntityConfig.SnsTopicArn); }
public async Task Handle(TlsRptRecordsEvaluated message) { string messageId = message.Id.ToLower(); TlsRptEntityState state = await LoadState(messageId, nameof(message)); _changeNotifiersComposite.Handle(state, message); Message updateTlsRptEvaluation = state.UpdateTlsRptEvaluation(message.Records, message.Messages, message.Timestamp); state.Version++; await _dao.Save(state); _dispatcher.Dispatch(updateTlsRptEvaluation, _tlsRptEntityConfig.SnsTopicArn); }
public async Task Handle(DomainCreated message) { string messageId = message.Id.ToLower(); TlsRptEntityState state = await _dao.Get(messageId); if (state != null) { _log.LogError("Ignoring {EventName} as TlsRptEntity already exists for {Id}.", nameof(DomainCreated), messageId); throw new MailCheckException($"Cannot handle event {nameof(DomainCreated)} as TlsRptEntity already exists for {messageId}."); } state = new TlsRptEntityState(messageId, 1, TlsRptState.Created, DateTime.UtcNow); await _dao.Save(state); TlsRptEntityCreated tlsRptEntityCreated = new TlsRptEntityCreated(messageId, state.Version); _dispatcher.Dispatch(tlsRptEntityCreated, _tlsRptEntityConfig.SnsTopicArn); _log.LogInformation("Created TlsRptEntity for {Id}.", messageId); }