public Task Handle(FactoryOnlineEvent evnt) { var factory = _dbContext.Factories.FirstOrDefault(f => f.FactoryId == evnt.EntityId); if (factory != null) { factory.State = FactoryState.Online; factory.LastSeen = evnt.Metadata.CreatedAt ?? factory.LastSeen; } return(Task.CompletedTask); }
public async Task OnEndReached(string topic, int partition, long offset) { while (_fakeFactories.Count > 0) { var factory = _fakeFactories[0]; _fakeFactories.RemoveAt(0); _logger.Information($"Factory provisioned: {factory}, starting fake factory.."); var response = new FactoryOnlineEvent(factory); await Task.Delay(3000).ContinueWith((_) => _producer.Produce(KafkaTopics.EVENTS, response)); } }