protected override void OnSnapshotOffer(WaterReservoirState state) { var sensors = state.Sensors; foreach (var sensor in sensors) { if (Context.Child(sensor.Tag).IsNobody()) { var sensorState = new SensorState(sensor.SensorId, sensor.Tag, sensor.Role); Context.ActorOf(SensorActor.Prop(new SensorHandler(), sensorState, sensor.Tag, _connectionString), sensor.Tag); } } base.OnSnapshotOffer(state); }
private static async Task <SensorActor> CreateSensorActor() { var target = new SensorActor(); PropertyInfo idProperty = typeof(ActorBase).GetProperty("Id"); idProperty.SetValue(target, new ActorId(Guid.NewGuid())); PropertyInfo stateManagerProperty = typeof(SensorActor).GetProperty("StateManager"); stateManagerProperty.SetValue(target, new MockActorStateManager()); await target.InitializeActorState(); return(target); }
protected override void OnPersist(IEvent persistedEvent, string commandid) { switch (persistedEvent) { case InstalledSensor installedSensor: { foreach (var sensor in installedSensor.Sensors) { if (Context.Child(sensor.Tag).IsNobody()) { var sensorState = new SensorState(sensor.SensorId, sensor.Tag, sensor.Role); Context.ActorOf(SensorActor.Prop(new SensorHandler(), sensorState, sensor.Tag, _connectionString), sensor.Tag); } } } break; } base.OnPersist(persistedEvent, commandid); }