private async Task SendEvents(Entities.PetrolStation petrolStation) { for (int i = 0; i < petrolStation.EventsToSend.Count; i++) { var @event = petrolStation.EventsToSend.Dequeue(); await kafkaProducer.ProduceEvent(@event); } }
private async Task SimulatePetrolStationWorkCycle(Entities.PetrolStation petrolStation) { petrolStation.ChangeCurrentBusinessDate(minute_interval); petrolStation.SimulateActivity(); var orders = petrolStation.GetOrders(); petrolStation.ChangeCurrentBusinessDate(minute_interval); var supplies = SupplyFactory.CreateFor(orders, petrolStation.CurrentDateTime); petrolStation.RefuelTanks(supplies); await repository.UpdateAsync(petrolStation); await SendEvents(petrolStation); }