public static UpdateTemperatureEvent ThirtyDegreeTemperatureEventFactory(Random random, Device device) { return new UpdateTemperatureEvent { DeviceId = device.Id, TimeObserved = DateTime.UtcNow, Temperature = 30, }; }
public EventSender( Device device, SimulatorConfiguration config, Func<object, byte[]> serializer) { this._serializer = serializer; var connectionString = ServiceBusConnectionStringBuilder.CreateUsingSharedAccessSignature( device.Endpoint, device.EventHubName, device.Id, device.Token ); _eventHubSender = EventHubSender.CreateFromConnectionString(connectionString); }
public static UpdateTemperatureEvent TemperatureEventFactory(Random random, Device device) { if (!device.CurrentTemperature.HasValue) { device.CurrentTemperature = random.Next(25); } else { var temperatureChange = random.Next(-2,3); device.CurrentTemperature += temperatureChange; } return new UpdateTemperatureEvent { DeviceId = device.Id, TimeObserved = DateTime.UtcNow, Temperature = device.CurrentTemperature.Value, }; }
private static async Task SimulateDeviceAsync( Device device, Func<EventEntry[]> produceEventsForScenario, Func<object, Task<bool>> sendEventsAsync, TimeSpan waitBeforeStarting, IObserver<int> totalCount, CancellationToken token) { ScenarioSimulatorEventSource.Log.WarmingUpFor(device.Id, waitBeforeStarting.Ticks); try { await Task.Delay(waitBeforeStarting, token); } catch (TaskCanceledException) { return; } var messagingEntries = produceEventsForScenario(); device.ObservableEventCount .Sum() .Subscribe(total => ScenarioSimulatorEventSource.Log.FinalEventCount(device.Id, total)); device.ObservableEventCount .Subscribe(totalCount.OnNext); await device.RunSimulationAsync(messagingEntries, sendEventsAsync, token).ConfigureAwait(false); }
public object CreateNewEvent(Device device) { return _eventFactory(_random, device); }